InputStream和OutputStream是面向直接形式的I/O,Reader和Writer是面向字符的I/O。
注意:
InputStreamReader可以将InputStream转换为Reader,而OutputStreamWriter可以把OutputStream转换为Writer。
来源与去处 相应java1.1类
InputStream Reader
适配器:InputStreamReader
OutputStream Writer
适配器 :OutputStreamWriter
FileInputStream FileReader
FileOutputStream FileWriter
StringBufferInputStream(弃用) StringReader
StringWriter
ByteArrayInputStream CharArrayReader、
ByteArrayOutputStream CharArrayWriter
PipedInputStream PipedReader
PipdOutputStream PipedWriter
二、更改流的行为
过滤器 java1.0类 相应的java1.1类
FilterInputStream FilterReader
FilterOutputStream FilterWriter
BufferedInputStream BufferedReader
BUfferedOutputStream BufferedWriter
DataInputStream 使用DataInputStream或BufferedReader
PrintStream PrintWriter
LineNumberInputStream (弃用) LineNumberReader
StreamTokenizer StreamTokenizer(使用接受Reader的构造器)
PushbackInputStream PushbackReader
注意:
无论何时使用readLine(),都不应该使用DataInputStream(编译不通过),而应该使用BufferedReader
三、I/O流的典型使用方式
输入:
1、缓冲输入文件
BufferedReader in = new BufferedReader(new fileReader(filename));
2、从内存输入
StringReader in = new StringReader(BufferedInputFile.read(fileName));
3、格式化的内存输入
DataInputStream in = DatainputStream(new ByteArrayInputStream(BufferedInputFile.read(fileName)));
输出:
1、基本的文件输出
PrintWriter out= new PrintWriter(new BufferedWriter(new FileWriter(file)));
2、文本文件输出的快捷方式
PrintWriter out = new PrintWriter(file);
3、存储和恢复数据
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutPutStream( fileName)));
读写随机访问文件
RandomAccessFile rf = new RandomAccessFile(file,"rw");
四、标准输入输出
System.in、System.out、System.error
重定向:(是面向字节流的)
setIn(InputStream);
setOut(OutputStream)
setErr(PrintStream)