首页 理论教育字节流与字符流:Java面向对象编程成果

字节流与字符流:Java面向对象编程成果

【摘要】:Java定义了两种类型的输入/输出流:字节流和字符流。字节流有两个重要的抽象类:InputStream和OutputStream。显然,在一些处理文本数据的应用中,字符流比字节流更有效。2)WriterBufferedWriter类和FileWriter类是字符输出流Writer抽象类下的子类。第4步,相关流对象清空和关闭。

Java定义了两种类型的输入/输出流:字节流和字符流。字节流(byte stream)用于处理字节的输入和输出,如使用字节流读取或写入二进制文件;字符流(character stream)为字符的输入和输出提供方便。

1.字节流

字节流处理字节的输入和输出,即以8位二进制为单位来读文件和写文件,适合图像、声音等二进制文件的读/写。

字节流有两个重要的抽象类:InputStream(字节输入流)和OutputStream(字节输出流)。这两个抽象类都有多个具体的子类,这些子类对不同的数据源和目的地进行处理,如磁盘文件、网络连接。

1)FileInputStream

FileInputStream俗称文件输入流,用于将文件中的数据输入内存。它是字节流InputStream类的一个子类。InputStream类提供了一个重要的方法——read(),可用于读取文本文件中的数据,具体实现步骤如下。

第1步,引入相关的类。

【提示】

为了简化程序,以上3个语句也可用语句“import java.io.∗;”来代替。

第2步,构造一个文件输入流对象。

此时的文件输入流对象fileobject与数据源(test.txt文件)就联系起来了。

第3步,利用文件输入流类的方法读取文本文件数据:

第4步,关闭文件输入流对象。

2)FileOutputStream

FileOutputStream俗称文件输出流,用于把内存中的数据输出到文件。它是字节输出流OutputStream类的一个子类。OutputStream类提供了一个重要的方法——write(),可用于把内存中的数据写入文本文件,具体实现步骤如下。

第1步,引入相关的类。

第2步,构造一个文件输出流对象。

此时,文件输出流对象fos与目标数据源(copy.txt文件)就联系起来了。(www.chuimin.cn)

第3步,利用文件输出流类的方法把数据写入文本文件。

第4步,关闭文件输出流对象。

2.字符流

字符流以字符为单位,能处理Unicode字符集中的任何字符。显然,在一些处理文本数据的应用中,字符流比字节流更有效。

字符流最基本的两个抽象类是Reader和Writer,即字符输入流和字符输出流。同样,它们也分别有许多子类,用于实现数据的输入/输出操作。

1)Reader

BufferedReader类和FileReader类都是Reader抽象类的子类。它们可以采用字符流的方式读取文件,并使用缓冲区,能提高读取文本文件的效率。读取文本文件的具体步骤如下。

第1步,引入相关的类。

第2步,构造一个BufferedReader对象。

第3步,利用BufferedReader类的方法读取文本文件的数据。

第4步,关闭相关的流对象。

2)Writer

BufferedWriter类和FileWriter类是字符输出流Writer抽象类下的子类。它们可以采用字符流的方式把数据写入文本文件,并使用缓冲区,能提高写文本文件的效率。把数据写入文本文件的具体步骤如下。

第1步,引入相关的类。

第2步,构造一个BufferedWriter对象。

第3步,利用BufferedWriter类的方法写文本文件。

第4步,相关流对象清空和关闭。