权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
常见路径
getFilesDir().getAbsolutePath()
/data/user/0/packagename/files
getCacheDir().getAbsolutePath()
/data/user/0/packagename/cache
Environment.getExternalStorageDirectory().getAbsolutePath() /storage/emulated/0
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath())
/storage/emulated/0/DCIM
getExternalCacheDir().getAbsolutePath()
/storage/emulated/0/Android/data/packagename/cache
getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath
/storage/emulated/0/Android/data/packagename/files/Pictures
写文件
File file = context.getFilesDir();
filename = file.getAbsolutePath() + File.separator + filename;
//打开文件输出流
FileOutputStream outputStream = new FileOutputStream(filename);
//写数据到文件中
outputStream.write(content.getBytes());
outputStream.close();
使用openFileOutput
String writestr=“123456789”;
try{
FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);
byte [] bytes = writestr.getBytes();
fout.write(bytes);
fout.close();
}
catch(Exception e){
e.printStackTrace();
}
读文件
StringBuilder sb = new StringBuilder("");
//获取文件在内存卡中files目录下的路径
File file = context.getFilesDir();
filename = file.getAbsolutePath() + File.separator + filename;
//打开文件输入流
FileInputStream inputStream = new FileInputStream(filename);
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
//读取文件内容
while(len > 0){
sb.append(new String(buffer,0,len));
//继续将数据放到buffer中
len = inputStream.read(buffer);
}
//关闭输入流
inputStream.close();
return sb.toString();
使用openFileInput()
String res="";
try{
FileInputStream fin = openFileInput(fileName);
int length = fin.available();
byte [] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
}
catch(Exception e){
e.printStackTrace();
-----
Log.i(TAG, "getExternalFilesDir="+getExternalFilesDir(null)+" getFilesDir="+getFilesDir()); String writestr="123456789"; try{ FileOutputStream fout =openFileOutput("test.txt", MODE_PRIVATE); byte [] bytes = writestr.getBytes(); fout.write(bytes); fout.close(); } catch(Exception e){ Log.i(TAG,"exception:"+e); e.printStackTrace(); } String res=""; try{ FileInputStream fin = openFileInput("test.txt"); int length = fin.available(); Log.i(TAG, "length="+length); byte [] buffer = new byte[length]; fin.read(buffer); Log.i(TAG, "file read: "+ buffer.toString()); fin.close(); } catch(Exception e){ Log.i(TAG,"exception:"+e); e.printStackTrace(); }