1、各种类型文件
(1)android资源文件(
这些数据只能读取,不能写入。
更重要的是该目录下的文件大小不能超过1M。
)
res/raw目录 使用InputStream inStream = getResources().openRawResource(R.raw.test);
assets目录 使用InputStream inStream = getAssets().open(fileName);
assets目录 使用InputStream inStream = getAssets().open(fileName);
(2)android数据区文件(data/data/)
FileInputStream inStream = openFileInput(fileName);
FileOutputStream outStream = openFileOutput(tarPath, MODE_PRIVATE);
(3)SD卡文件
FileInputStream inStream = new FileInputStream(fileName);
FileOutputStream outStream =
new
FileOutputStream(tarPath);
2、读取/写入数据(
使用InputStream和OutputStream
时需捕获异常try{} catch(IOException e){},或者在函数名称后加上throws IOException)
(1)返回字符串
int
size = inStream.available();
byte [] buffer = new byte [size];
byte [] buffer = new byte [size];
inStream.read(
buffer
);
inStream.close();
String res = new String(buffer);
//String res = EncodingUtils.getString(buffer, "UTF-8");
//依文件的编码类型选择合适的编码,如果不调整会乱码
return res;
(2)存放到数据区文件中
byte[] buffer = new byte[8*1024];
//定义写入空间大小
FileOutputStream outStream = openFileOutput(tarPath, MODE_PRIVATE);
//
MODE_PRIVATE为Context类变量,默认值为0
int len;
while ((len =
inStream
.read(buffer)) >= 0) {
outStream
.write(buffer, 0, len);
}
(3)存放到SD卡文件中
byte[] buffer = new byte[8*1024];
FileOutputStream outStream = new FileOutputStream(tarPath);
int len;
while ((len =
inStream
.read(buffer)) >= 0) {
outStream
.write(buffer, 0, len);
}
(4)字符串写入文件
FileOutputStream outStream =
new FileOutputStream(
tarPath);
byte
[] buffer =
res.getBytes();
outStream.write(buffer);
outStream.close();