java io基础学习二

转换流:

InputStreamReader:字节到字符的桥梁,解码。

OutputStreamWriter:字符到字节的桥梁,编码。

流的操作规律:

1.明确源和目的(汇)

  源: InputStream Reader 

  目的: OutputStream Writer

2.明确数据是否是纯文本数据

  源:是-纯文本:Reader 

    否-InputStream

  目的: 是 -纯文本 Writer

      否- OutputStream

3.明确具体的设备。

  源设备:

      硬盘:File

      键盘:System.in

      内存:数组

      网络:Socket流

  目的设备:

      硬盘:File

      控制台:System.out

      内存:数组

      网络:Socket流

4.是否需要其他额外功能

  1.是否需要高效(缓冲区):

      是:加入Buffer

  2.转换

    InputStreamReader ir = new InputStreamReader(System.in);

    OutputStreamWriter ow = new OutputStreamReader(System.out):

    --字节流转字符流

    


OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt") , "GBK");

FileWriter fw = new FileWriter("gbk.txt");

这两句代码的功能是等同的。

FileWriter : 其实就是转换流指定了本机默认码表的体现,而且这个转换流的子类对象,可以方便操作文本文件。

      简单说:操作文件的资字节流 + 本机默认的编码表

如果操作文本文件需要明确具体的编码,FileWriter就不能使用,必须用转换流。

同理:

InputStreamReader isr = new InputStreamReader(new FileInputStream("utf.txt") ,  "utf-8");

转换流的使用:

1.源或者目的对应的设备是字节流,但是操作的却是文本数据,可以使用转换作为桥梁。

2.一旦操作文本涉及到具体的指定编码表时,必须使用转换流。

原文地址:https://www.cnblogs.com/wangxh92/p/3740261.html