Java I/O (四)缓冲流类

来源:互联网 发布:佳能单反修图软件 编辑:程序博客网 时间:2024/06/02 12:16


存在着几种读取和写入 File 的方法,但是通常,最简便的方法如下所示:

  • File 上创建一个 FileWriter
  • FileWriter 包装到一个 BufferedWriter 中。
  • 只要有必要,可以在 BufferedWriter 上调用 write() 来编写 File 的内容,通常每个行都是以一个行终止符(即 /n)结尾的。
  • BufferedWriter 上调用 flush() 来清空它。
  • 关闭 BufferedWriter,如果有必要,还需要清除它。

该代码如下所示:


try {
FileWriter writer = new FileWriter(aFile);
BufferedWriter buffered = new BufferedWriter(writer);
buffered.write("A line of text./n");
buffered.flush();
} catch (IOException e1) {
e1.printStackTrace();
}

这里在 aFile 上创建了一个 FileWriter。缓冲编写比一次只编写出一个字符有效。在编写每个行(用 /n 符号手工结束)时,可以在 BufferedWriter 上调用 flush()。如果不这样做,那么在文件中将看不到任何数据,这破坏了编写所有文件的意图。

一旦文件中有了数据,就可以使用一些简单的类似以下代码的简单代码来读取这些数据:


String line = null;
StringBuffer lines = new StringBuffer();
try {
FileReader reader = new FileReader(aFile);
BufferedReader bufferedReader = new BufferedReader(reader);
while ( (line = bufferedReader.readLine()) != null) {
lines.append(line);
lines.append("/n");
}
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println(lines.toString());

我们创建了一个 FileReader,然后将它包装在 BufferedReader 中。这样我们就可以使用方便的 readLine() 方法。我们可以读取每个行,直到一个行都不剩,也可以将每个行附加到 StringBuffer 的末尾。在从一个文件中读取信息时,可能发生 IOException,因此我们使用了一个 try/catch 代码块来介绍所有文件读取逻辑。

 
原创粉丝点击