android数据存储在文件小结
利用bufferedReader进行数据存储要比用inputStream的速度要快一下。
bufferdReader的用法比较复杂,它一次性读取大量的数据,减少IO次数,提升效率。而inputStream是一个字节一个字节的读取,每次读取都会执行一次 IO。
FileOutputStream结合FileOutputStream使用。BufferedInput与BufferedOutputStream分别可以为InputStream,OutputStream对象增加缓冲区功能。
BufferedOutputStream的数据成员buf是一个位数组,默认为512字节。当使用write()方法写入数据时,实际上会先将数据写至buf,当bug已满时才会实现OutputStream的write方法,将bug数据写至目的地址。为了确保缓冲区中的数据一定被写入目的地址,追后需要执行flush()将剩余数据全部写出到目的地址中。
使用例子
public static boolean writeContentTofile(byte[] data, String targetFile) {
boolean result = false;
File file = null;
BufferedOutputStream outputream = null;
try {
file = new File(targetFile);
FileOutputStream fileStream = new FileOutputStream(file, true);
outputream = new BufferedOutputStream(fileStream);
outputream.write(data);
outputream.flush();
result = true;
} catch(Exception e) {
e.printStackTrace();
} finally {
if (null == outputream) {
try {
outputream.close();
outputream = null;
} catch(Exception e) {
e.printStackTrace();
}
}
}
return result;
}