首页 百科知识 文件字符流

文件字符流

时间:2022-04-09 百科知识 版权反馈
【摘要】:12.3.2 文件字符流FileReader类是InputStreamReader类的直接子类,而InputStreamReader类是Reader类的直接子类。FileWriter用于向文件中写字符。当调用write方法写出字符时,文件字符输出流会按照平台默认的字符编码规范将内存中的每个Unicode字符转换成一个或多个字节,并将这些字节写到文件中;当调用read方法读取字符时,文件字符输入流会按照平台默认的字符编码规范从文件中读取一个或多个字节,并将其转换成Unicode字符返回。要求读文件时,使用read方法。

12.3.2 文件字符流

FileReader类是InputStreamReader类的直接子类,而InputStreamReader类是Reader类的直接子类。FileReader用于从文件中读取字符数据。该类只能按照本地平台默认的字符编码规范读取数据(字符),用户不能指定其他字符编码类型。

FileReader类构造方法的参数是磁盘文件,确定了数据源。其构造方法有:

①FileReader(String fileName)throws FileNotFoundException;

②FileReader(File file)throws FileNotFoundException。

FileReader类中可用的方法有:read()返回输入字符,read(char[]buffer)输入字符到字符数组中等。这些方法是从Reader类间接继承下来的,因此,其用法与Reader类中相应的读方法相同。详见12.2.2节中字符流中的方法声明。

FileWriter类是OutStreamWriter类的直接子类,OutStreamWriter类是Writer类的直接子类。FileWriter用于向文件中写字符。该类只能按照本地平台默认的字符编码规范写数据(字符),用户不能指定其他字符编码类型。

FileWriter类构造方法的参数是磁盘文件,确定了数据目的地。其构造方法包括:

①FileWriter(String fileName)throws IOException;

②FileWriter(String fileName,boolean append)throws IOException;

③FileWriter(File file)throws IOException。

FileWriter类中常用的方法有:write(String str)和Write(char[]buffer)输出字符串,write(int char)输出字符,flush()输出缓冲字符,close()在执行flush后关闭输出流,getEncoding()获得文件流字符的编码等。这些写方法是从Writer类间接继承下来的,因此,其用法与Writer类中相应的写方法相同。详见12.2.2节中字符流中的方法声明。

【例12-7】 编程将唐诗《登鹳雀楼》写入登鹳雀楼.txt文件中,然后再将该文件的内容读出,打印在显示器上。

程序运行结果:

白日依山尽

黄河入海流

欲穷千里目

更上一层楼

分析与思考:①因为以字符为单位进行读写,所以,能正确地处理汉字。当调用write方法写出字符时,文件字符输出流(FileWriter)会按照平台默认的字符编码规范将内存中的每个Unicode字符转换成一个或多个字节,并将这些字节写到文件中;当调用read方法读取字符时,文件字符输入流(FileReader)会按照平台默认的字符编码规范从文件中读取一个或多个字节,并将其转换成Unicode字符返回。

②Ex12_7类中使用的两种写方法:write(String str)和Write(char[]buffer)。

模仿例12-7:将另一首唐诗写入文件,然后再从该文件中读出并打印在显示器上。要求读文件时,使用read(char[]buffer)方法。

改写例12-5,使用FileReader类,编程完成例12-5的功能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈