<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
动态权限申请(调用文件读写的java类中)
ActivityCompat.requestPermissions(MainActivity.this, new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
动态权限的申请只需要一个语句即可,格式为
ActivityCompat.requestPermissions(MainActivity.this, new String[]{ 权限1,权限2,权限3,…},1);
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
应用程序文件夹文件的读写
//向应用程序文件夹保存文件
private void SaveString(String Filename,String string){
// Filename : 文件名
// string : 要保存的字符串
try {
FileOutputStream file=this.openFileOutput(Filename, Context.MODE_PRIVATE);
file.write(string.getBytes());
file.close();
}catch (IOException e){
e.printStackTrace();
}
}
//读取应用程序文件夹文件
private String LoadString(String Filename){
// Filename : 文件名
// 返回值 : 正常打开状态返回读取到的文本,不正常状态返回0
String str;
try {
FileInputStream filestream=this.openFileInput(Filename);
int filelength=filestream.available();
byte[] text_byte=new byte[filelength];
filestream.read(text_byte);
filestream.close();
str= new String(text_byte, StandardCharsets.UTF_8);
return str;
} catch (IOException e) {
e.printStackTrace();
return "0";
}
}
存储设备文件夹文件的读写
//向手机存储设备保存文件
private void SaveToDocument(String Filename,String Filepath,String string) {
// FileName : 文件名
// Filepath : 文件路径(已存在的文件夹) [ 格式:xxx/xxxx/,确保文件夹存在且以/结束,为空则保存在手机存储的根目录(storage/0/)]
// string : 要保存的数据
try {
File file = new File(Environment.getExternalStorageDirectory()+"/"+Filepath, fileName);
if (file.exists()) {
file.delete();
}
file.createNewFile();
FileOutputStream outStream = new FileOutputStream(file);
outStream.write(string.getBytes());
outStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//读取手机存储设备的文件
private String LoadFromDocument(String Filename,String Filepath) {
// FileName : 文件名
// Filepath : 文件路径(已存在的文件夹) [ 格式:xxx/xxxx/,确保文件夹存在且以/结束]
// 返回值 : 正常打开状态返回读取到的文本,不正常状态返回0
String str;
try {
File file = new File(Environment.getExternalStorageDirectory()+"/"+Filepath, fileName);
filestream = new FileInputStream(file);
int filelength = filestream.available;
byte[] text_byte = new byte[filelength];
filestream.read(text_byte);
filestream.close;
str= new String(text_byte, StandardCharsets.UTF_8);
return str;
} catch (IOException e) {
e.printStackTrace();
return "0";
}
}
2019.07.12