在manifests里面加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
申请权限
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 23) {
int REQUEST_CODE_CONTACT = 101;
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
for (String str : permissions) {
if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
}
}
}
setContentView(R.layout.activity_main);
String root = Environment.getExternalStorageDirectory().getPath();
String file_name = "/test.txt";
int result = saveFile(root,file_name);
if(result) System.out.println("写入成功");
String text = readRile(root,file_name);
if(!text.equals(""))System.out.println("读取成功:"+text);
写入文件
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public String saveFile(String root,String file_name) {
File file = new File(root);
if (!file.exists()) {
try{
file.mkdir();
}catch(IOException e){
return 0;
}
}
String fileFullPath = root+file_name;
File txt = new File(fileFullPath);
if (!txt.exists()) {
try {
FileOutputStream fileOutputStream = new FileOutputStream(fileFullPath);
fileOutputStream.write("123456");
fileOutputStream.close();
return 1;
} catch (IOException e) {
return 0;
}
}
return 0;
}
读取文件
public String readRile(String root,String file_name) {
String strFullPath = root+file_name;
String str;
byte[] buffer = new byte[1024];
try {
FileInputStream fi = new FileInputStream(strFullPath);
while (true) {
int len = fi.read(buffer);
if (len > 0) {
str = new String(buffer, 0, len);
} else {
break;
}
}
} catch (IOException e) {
return "";
}
return str;
}