android write file,Android Study Day 3 --Android File Read And Write

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:

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值