Read File
read file by path in “/data/data/appName/appPackageName/files”:
use method openFileInput(String fileName) of class Context.
example:
public String read(String fileName) throws Exception { try (FileInputStream input = context.openFileInput(fileName)) { StringBuffer stringBuffer=new StringBuffer(); byte[] buffer=new byte[input.available()]; for (int i = input.read(buffer); i >0; i=input.read(buffer)) { stringBuffer.append(new String(buffer,0,i)); } return stringBuffer.toString(); } catch (Exception e) { throw e; } }
read file by path in “/resource/raw”:
use method openRawResource(int R.raw.fileId) of class Resources.
example:
InputStream input = context.getResources().openRawResource(R.raw.fileId);
note raw in file general need use EncodingUtils.getString(String data,String charset) decode,and this directory in single file size max 1MB,and only read can’t write.
read file by path in “/resource/asset”:
use method open(String fileName) of class AssetManager.
example:
InputStream input = context.getResources().getAssets().open(String fileName);
note asset in file general need use EncodingUtils.getString(String data,String charset) decode,and this directory in single file size max 1MB,and only read can’t write.
read file by path in “/mnt/sdcard”(compatible version must use Environment.getExternalStorageDirectory()):
use direct create FileInputStream or direct create RandomAccessFile.
example:
1. InputStream input =new FileInputStream(Environment.getExternalStorageDirectory()+"/folderPath***/"+fileName); 2. RandomAccessFile accessFile=new RandomAccessFile(Environment.getExternalStorageDirectory()+"/folderPath***/"+fileName,String accessMode);
note sdcardin file general need use EncodingUtils.getString(String data,String charset) decode,and check SD card whether or not exist.
check SD card whether or not exist code:
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ SD card exist and can read with write... }
Write File
write file by path in “/data/data/appName/appPackageName/files”:
use method openFileOutput(String fileName,int writeMode) of class Context.
example:
public void save(String fileName, String fileContent) throws Exception { try (FileOutputStream output = context.openFileOutput(fileName, Context.MODE_PRIVATE)) { output.write(fileContent.getBytes()); } catch (Exception e) { throw e; } }
write file by path in “/mnt/sdcard”(compatible version must use Environment.getExternalStorageDirectory()):
use direct create FileOuputStream or direct create RandomAccessFile.
example:
1. OuputStream ouput =new FileOuputStream(Environment.getExternalStorageDirectory()+"/folderPath***/"+fileName); 2. RandomAccessFile accessFile=new RandomAccessFile(Environment.getExternalStorageDirectory()+"/folderPath***/"+fileName,String accessMode);
note SD card in write file need at AndroidMainfest.xml setting permission.
at AndroidMainfest.xml root node in add code:
<!--create delete file permission--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--create write file permission--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
note ‘uses-permission’ tag must appears ‘application’ tag before.
comment may on AVD will throw an exception “open file failed:EACCES (permission denied)”,but never appear at really environment.