首页

Android数据存储实例(读写文件数据)

java

2020-6-16

实现了内部存储和外部存储的写入和读取



public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG ="MainActivity" ; private  static final int REQUEST_EXTERNAL_STORAGE = 1;
    String fileName = "test.txt"; @Override  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(requestCode == 1){ for(int i=0;i<permissions.length;i  ){ if(permissions[i].equals("android.permission.WRITE_EXTERNAL_STORAGE")&&grantResults[i]== PackageManager.PERMISSION_GRANTED){
                    Toast.makeText(this,"获得权限",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(this,"权限被拒绝",Toast.LENGTH_SHORT).show();
                }
            }
        }
    } @Override  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn_innerwrite = findViewById(R.id.btn_innerwrite);
        btn_innerwrite.setOnClickListener(this);
        Button btn_innerread = findViewById(R.id.btn_innerread);
        btn_innerread.setOnClickListener(this);
        Button btn_outerwrite = findViewById(R.id.btn_outerwrite);
        btn_outerwrite.setOnClickListener(this);
        Button btn_outerread = findViewById(R.id.btn_outerread);
        btn_outerread.setOnClickListener(this);
    } @Override  public void onClick(View v) { switch (v.getId()){ case R.id.btn_innerwrite:
                innerwrite(); break; case R.id.btn_innerread:
                innerread(); break; case R.id.btn_outerwrite:
                outerwrite(); break; case R.id.btn_outerread:
               outerread(); break; default: break;
        }
    } private void outerread() { //检查外部设备状态  String envior = Environment.getExternalStorageState(); //如果是加载状态,那么开始写入  if(envior.equals(Environment.MEDIA_MOUNTED)){
            ActivityCompat.requestPermissions(this,new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"},1);
            File sd_path = Environment.getExternalStorageDirectory();
            sd_path = new File(sd_path,"/txtfile");//创建路径  sd_path.mkdirs();
            File file = new File(sd_path,fileName);
            String str = "";
            FileInputStream fis = null; try {
                fis = new FileInputStream(file);
                BufferedReader buff = new BufferedReader(new InputStreamReader(fis));
                str=buff.readLine(); //fis.write(str.getBytes());  fis.close();
                Toast.makeText(this,"read scucess!" str,Toast.LENGTH_SHORT).show();
                Log.i(TAG,"read scucess!" str);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } private void outerwrite() { //检查外部设备状态  String envior = Environment.getExternalStorageState(); //如果是加载状态,那么开始写入  if(envior.equals(Environment.MEDIA_MOUNTED)){
            ActivityCompat.requestPermissions(this,new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"},1);
            File sd_path = Environment.getExternalStorageDirectory();
            sd_path = new File(sd_path,"/txtfile");//创建路径  sd_path.mkdirs();
            File file = new File(sd_path,fileName);
            String str = "outer write testing!";
            FileOutputStream fos = null; try {
                fos = new FileOutputStream(file);
                fos.write(str.getBytes());
                fos.close();
                Toast.makeText(this,"write scucess!" sd_path.getAbsolutePath(),Toast.LENGTH_SHORT).show();
                Log.i(TAG,"write scucess!" sd_path.getAbsolutePath());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } private void innerread() { //String strr = "";  FileInputStream fis = null; try {
            fis = openFileInput(fileName); byte[] buffer = new byte[fis.available()];
            fis.read(buffer);
            String strr = new String(buffer);
            Toast.makeText(this,"read scucess!" strr,Toast.LENGTH_SHORT).show();
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } private void innerwrite() {
        String str = "innerwrite test!";
        FileOutputStream fos = null; try {
            fos = openFileOutput(fileName,MODE_PRIVATE);
            fos.write(str.getBytes());
            Toast.makeText(this,"write scucess!" getFilesDir().getAbsolutePath(),Toast.LENGTH_SHORT).show();
            Log.i(TAG,"file address:" getFilesDir().getAbsolutePath());
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
ch06/.gitignore , 222
ch06/.gradle/5.4.1/executionHistory/executionHistory.bin , 1268349
ch06/.gradle/5.4.1/executionHistory/executionHistory.lock , 17
ch06/.gradle/5.4.1/fileChanges/last-build.bin , 1
ch06/.gradle/5.4.1/fileContent/fileContent.lock , 17
ch06/.gradle/5.4.1/fileHashes/fileHashes.bin , 130533
ch06/.gradle/5.4.1/fileHashes/fileHashes.lock , 17
ch06/.gradle/5.4.1/fileHashes/resourceHashesCache.bin , 18599
ch06/.gradle/5.4.1/gc.properties , 0
ch06/.gradle/5.4.1/javaCompile/classAnalysis.bin , 69363
ch06/.gradle/5.4.1/javaCompile/javaCompile.lock , 17
ch06/.gradle/5.4.1/javaCompile/taskHistory.bin , 23159
ch06/.gradle/buildOutputCleanup/buildOutputCleanup.lock , 17
ch06/.gradle/buildOutputCleanup/cache.properties , 53
ch06/.gradle/buildOutputCleanup/outputFiles.bin , 20945
ch06/.gradle/vcs-1/gc.properties , 0
ch06/.idea/caches/build_file_checksums.ser , 538
ch06/.idea/caches/gradle_models.ser , 143031
ch06/.idea/codeStyles/Project.xml , 3424
ch06/.idea/gradle.xml , 649
ch06/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_jar.xml , 765
ch06/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml , 848
ch06/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0_jar.xml , 569
ch06/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml , 679
ch06/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml , 734
ch06/.idea/libraries/Gradle__androidx_collection_collection_1_0_0_jar.xml , 567
ch06/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml , 497
ch06/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml , 420
ch06/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml , 912
ch06/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml , 808
ch06/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml , 692
ch06/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml , 671
ch06/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml , 685
ch06/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml , 872
ch06/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml , 840
ch06/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml , 685
ch06/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml , 723
ch06/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml , 738
ch06/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0_jar.xml , 594
ch06/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml , 709
ch06/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml , 734
ch06/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml , 704
ch06/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml , 714
ch06/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml , 643
ch06/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml , 747
ch06/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml , 816
ch06/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml , 720
ch06/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml , 920
ch06/.idea/libraries/Gradle__androidx_test_core_1_1_0_aar.xml , 809
ch06/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml , 899
ch06/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml , 976
ch06/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_0_aar.xml , 828
ch06/.idea/libraries/Gradle__androidx_test_monitor_1_1_1_aar.xml , 829
ch06/.idea/libraries/Gradle__androidx_test_runner_1_1_1_aar.xml , 822
ch06/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml , 699
ch06/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml , 744
ch06/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml , 734
ch06/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml , 664
ch06/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml , 367
ch06/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml , 737
ch06/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml , 723
ch06/.idea/libraries/Gradle__junit_junit_4_12_jar.xml , 667
ch06/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml , 698
ch06/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml , 744
ch06/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml , 793
ch06/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml , 764
ch06/.idea/misc.xml , 365
ch06/.idea/modules.xml , 353
ch06/.idea/runConfigurations.xml , 575
ch06/.idea/workspace.xml , 12604
ch06/app/.gitignore , 8
ch06/app/app.iml , 13050
ch06/app/build.gradle , 950
ch06/app/proguard-rules.pro , 772
ch06/app/src/androidTest/java/cn/jxust/ch06/ExampleInstrumentedTest.java , 769
ch06/app/src/main/AndroidManifest.xml , 941
ch06/app/src/main/java/cn/jxust/ch06/MainActivity.java , 6331
ch06/app/src/main/res/drawable/ic_launcher_background.xml , 5776
ch06/app/src/main/res/drawable-v24/ic_launcher_foreground.xml , 1914
ch06/app/src/main/res/layout/activity_main.xml , 1279
ch06/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml , 276
ch06/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml , 276
ch06/app/src/main/res/mipmap-hdpi/ic_launcher.png , 2963
ch06/app/src/main/res/mipmap-hdpi/ic_launcher_round.png , 4905
ch06/app/src/main/res/mipmap-mdpi/ic_launcher.png , 2060
ch06/app/src/main/res/mipmap-mdpi/ic_launcher_round.png , 2783
ch06/app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4490
ch06/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png , 6895
ch06/app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 6387
ch06/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png , 10413
ch06/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 9128
ch06/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png , 15132
ch06/app/src/main/res/values/colors.xml , 214
ch06/app/src/main/res/values/strings.xml , 70
ch06/app/src/main/res/values/styles.xml , 394
ch06/app/src/test/java/cn/jxust/ch06/ExampleUnitTest.java , 390
ch06/build.gradle , 585
ch06/ch06.iml , 876
ch06/gradle/wrapper/gradle-wrapper.jar , 54329
ch06/gradle/wrapper/gradle-wrapper.properties , 238
ch06/gradle.properties , 1093
ch06/gradlew , 5296
ch06/gradlew.bat , 2260
ch06/local.properties , 435
ch06/settings.gradle , 41
没有账号? 忘记密码?

社交账号快速登录