第1章     转换流

展示注释:看到Stream在最后面就是字节类(以后再说)

1.1                OutputStreamWriter类

 

 

 

 

写入的时候用的到flush,写出的时候用不着

1.2                InputStreamReader类

 

 

 

 

 

 

用转换流进行复制

 

 

首先我们要明白,程序里的和所展示的是不一样的,展示出来的txt是已经编译好的

我们要转换一个不是UTF8的文件,所以用1来确定文件的路径来,然后再用学的转换流2来进行程序内进行编译转换,将字节转换成字符输出到程序里面,选择fis,UTF8编译,。

开始3的流程,明确要复制输出的地点,4创建输出的转换流,fos,UTF8编译,再把12得到的东西又字符转换成字节输出出去,这样即便是不同编码的文件也能复制了。

简单说就是将GDK字符以UTF8输入至程序里,然后程序再以UTF8转出复制的文件。

 

 

总结:

字节--->字符 : 看不懂的--->看的懂的。  需要读。输入流。 InputStreamReader

字符--->字节 : 看的懂的--->看不懂的。  需要写。输出流。 OutputStreamWriter

1.3                转换流和子类区别

发现有如下继承关系:

OutputStreamWriter:   utf-8 gbk

                   |--FileWriter:             gbk

InputStreamReader:

|--FileReader;

字符流是转换流的子类,只能gbk,连着调用方式可以看情况,如果只是复制gbk可以用身为子类的字节流。

第2章     缓冲流

2.1                字节缓冲流

l  写入数据到流中,字节缓冲输出流 BufferedOutputStream

l  读取流中的数据,字节缓冲输入流 BufferedInputStream

2.1.1    字节缓冲输出流BufferedOutputStream

 

 

2.1.1    字节缓冲输入流 BufferedInputStream

 

 

2.2                用字节缓冲流复制文件

 

 

其实就是把字节流套入缓冲流里面,因为是缓冲流调用的字节流,所以关闭的时候只要关闭缓冲流就行,缓冲流会自己关闭字节流的。因为缓冲流需要套字节流,所以缓冲流是依靠字节流的。

 

2.3                字符缓冲流

 

l  读取流中的数据,字符缓冲输入流 BufferedReader

l  独有方法

public String readLine() 读取一个文本行,包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。一行一行的输入

 

l  写入数据到流中,字符缓冲输出流 BufferedWriter

l  独有方法:

void newLine() 根据当前的系统,写入一个换行符

 

2.3.1    字符缓冲输出流 BufferedWriter

 

 

2.3.2    字符缓冲输入流 BufferedReader

一行一行

 

 

Null和-1一样

 

 

字符缓冲流一行一行的复制,用到了换行

第3章     IO流大体分类