可以使用流 访问文件系统上的文件。在最低的级别上,流允许程序接收来自数据源的字节,或者允许将输出发送到目的地。一些流可以处理所有类型的 16 位字符(类型 Reader 和 Writer)。而其他一些流则只能处理 8 位字符(类型 InputStream 和 OutputStream)。在这些分层结构中,有几种风格的流(所有流都可以在 java.io 包中找到)。在最高级别的抽象中,有一些字符流 和字节流。
字节流读取(InputStream 及其子类)并编写(OutputStream 及其子类)8 位字节。换句话说,可以将字节流看作是一种更原始的流。因此,也就不难理解为什么关于基本 Java 语言类的 Java.sun.com 教程说字节流通常用于二进制数据,比如说图像。以下是一个选定的字节流列表:
FileInputStream 从某一文件中读取文件
FileOutputStream 将字节写入某个文件中。
ByteArrayInputStream ByteArrayOutputStream | 从某个内存数组中读取字节,以及将字节写入某个内存数组中。 |
字符流可以读取(Reader 及其子类)和写入(Writer 及其子类)16 位的字符。子类也可以从数据接收器 中读取或写入数据,或者处理转换中的字节。以下是一个选定的字符流列表:
StringReader StringWriter | 这些流从内存中的 String 中读取或写入字符。 |
InputStreamReader InputStreamWriter(及其子类 FileReader FileWriter) | 是字节流与字符流之间的桥梁。Reader 风格(flavor)从字节流读取字节,并将它们转换成字符。而 Writer 风格将字符转换成字节,并将它们放在字节流上。 |
BufferedReader 和 BufferedWriter | 在缓冲数据的同时读取或写入另个流,它使读取或写入操作更加有效。可以用缓冲的流包装 另一个流。 |
存在着几种读取和写入 File 的方法,但是通常,最简便的方法如下所示:
- 在
File上创建一个FileWriter。 - 将
FileWriter包装到一个BufferedWriter中。 - 只要有必要,可以在
BufferedWriter上调用write()来编写File的内容,通常每个行都是以一个行终止符(即/n)结尾的。 - 在
BufferedWriter上调用flush()来清空它。 - 关闭
BufferedWriter,如果有必要,还需要清除它

被折叠的 条评论
为什么被折叠?



