在本地写入保存的操作, 很多时候我们习惯使用Outputstream, 而其实写文本文件的时候, Java提供一个很好的工具给我们 ----- writer. 由于它是针对文本类型的文件操作, 所以如果是对TXT, LOG等这类文本文件进行写操作时, 它的效率比Outputstream高不少. 以下是一个栗子.
public void writeInSD() throws IOException{
String path1 = "/mnt/sdcard/writeTest";
File file1 = new File(path1);
if(!file1.exists()) file1.mkdir();
String fileName = file1 + "/" + "test.txt";
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fileName));
writer.write("Hello world!");
writer.newLine();
writer.write("This is the writeTest.");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
writer.flush();
writer.close();
}
}
writer的flush 和 close操作必须放在finally那里, 因为进行读写操作时, 数据先读取到缓存中, 再从缓存中读取写入文件. 因此从缓冲区读完数据后, 必须flush清空缓冲区, 然后close关闭读写流.
最后在主方法调用 writeInSD()即可在writeTest文件夹看到test.txt这个文件.
try {
writeInSD();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}