(一)处理流
Buffering:字符型<BufferedReader、BufferedWriter>,字节型<BufferedInputStream、BufferedOutputStream>
Filtering:字符型<FilterReader、FilterWriter>,字节型<FilterInputStream、FilterOutputStream>
Converting between bytes and character:字符型<InputStreamReader、OutputStreamWriter>
Counting:字符型<LineNumberReader>,字节型<LineNumberInputStream>
peeking ahead:字符型<PusbackRead>,字节型<PushbackInputStream>
Printing:字符型<PrintWriter>,字节型<PrintStream>
(二)缓冲流
缓冲流要“套接”在相应的节点流上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。
四种缓冲林,其常用的构造方法:
BufferedReader(Reader in)
BufferedReader(Reader in,int sz)
BufferedWriter(Writer out)
BufferedWriter(Writer out, int sz)
BufferedInputStream(InputStream in ,int size)
BufferedInputStream(intputStream in)
BufferedOutputStream(OutputStream in ,int size)
BufferedOutputStream(OuttputStream in)
缓冲输入流支持其父类的mark和reset方法;
BufferedReader提供了ReaderLine方法用于读取一行字符串(以\r或\n分隔)
BufferedWriter提供了newLine用于写入一个行分隔符
对于输出的缓冲流,写出的数据会现在内存中缓存,使用flush方法将会使内存中的数据立刻写出。
(三)转换流
InputStreamReader和OutputStreamWriter用于字节数据到字符数据之间的转换
InputStreamReader需要和InputStream“套接”
OutputStreamWriter需要和OutputStream“套接”
转换流在构造时可以指定其编码集合
举例:
import java.io.*;
public class TestTransForm2 {
public static void main(String[] args){
InputStreamReader s1 = new InputStreamReader(System.in);
BufferedReader s2 = new BufferedReader(s1);
String s = null;
try{
s=s2.readLine();
while(s!=null){
if(s.equalsIgnoreCase("exit"))break;
System.out.println(s.toUpperCase());
s=s2.readLine();
}
s2.close();
}catch(IOException e){
e.printStackTrace();
}
}
}