通过流实现文件读写的方法(中)

时间:2022-10-28 22:38:15

2.2 字符流方式读取写入文件

1.2.2”中提到,字符流主要由ReaderWriter作为基类。我们将使用这两个类的派生类InputStreamReaderOutputStreamWriter实现文件数据的读写。字符流与字节流的关系如图所示。

 通过流实现文件读写的方法(中)

 

2.2.1 文件数据的写入

使用OutputStreamWriter类可以实现字符流方式写入文件。该类是字符流通向字节流的桥梁。

2.2.1.1 创建文件流

OutputStreamWriter类是通过FileOutputStream类创建的。

FileOutputStream fos = new FileOutputStream(filePath);

OutputStreamWriter osw = new OutputStreamWriter(fos);

2.2.1.2 写入文件流

通过OutputStreamWriter类的write()方法实现文件流的写入。

osw.write(content);

其中,content是要写入文件的数据,其类型是String。在“1.2.2”中提到,OutputStreamWriter类是字符流,因此,write()的参数是String,可以直接将其写入到流中,无需将其再变为byte[]

2.2.1.3 关闭文件流

如果不再使用字符流,需要将其关闭。而在使用字符流时也用到了字节流,因此也需要将字节流关闭。关闭流的顺序与创建流的顺序相反,要先关闭字符流,再关闭字节流。

osw.close();

fos.close();

2.2.2 文件数据的读取

使用InputStreamReader类可以实现字符流方式读取文件。该类的使用与OutputStreamWrite类相似。

2.2.2.1 创建文件流

InputStreamWriter类是通过FileInputStream类创建的。

FileInputStream fis = new FileInputStream(filePath);

InputStreamReader isr = new InputStreamReader(fis);

2.2.2.2 读取文件流

通过InputStreamReader类的方法read()读取文件流。

isr.read(content);

其中,content的类型是char[],用于保存读取到的文件数据。

2.2.2.3 关闭文件流

最后关闭字符流和字节流。

isr.close();

fis.close();

相关文章