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

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();
}
}
}
资源文件列表
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
