java 的输入/输出
java的 I/O是通过java.io包下的类和接口支持,其中最重要的是5个类,分别是 File,OutputStream,InputStream, Write,Reader及一个接口Serializable.
File类:可以对文件进行操作
字节流:(OutputStream/InputStream),可以使用字节流读取文件内容
字符流:(Writer/Reader)
转换流:(InputStreamReader/OutputStreamWriter)将字节流转换为字符流
缓冲流:(BufferedReader),读取缓冲区的内容
内存操作流:(ByteArrayInputStream/ByteArrayOutputStream),可以与内存的数据时行交互
打印流:
Scanner类:对输入的输入,还可以验证数据
合并流:(SequenceInputStream)类可以将两个文件内容合并成一个文件
压缩流:对文件压缩操作
Serializable接口:对象序列化
输入字节流层次:
InputStream(父类):ByteArrayInputStream,FileInputStream,StringBufferInputStream,SequenceInputStream,ObjectInputStream,FilterInputStream(BufferedInputStream,DataInputStream,LineNumberInputStream,PushbackInputStream) [子类]
输出字节流层次:
OutputStream(父类):ByteArrayOutputStream,FileOutputStream,ObjectOutputStream,PipedOutputStream,FilterOutputStream(BufferedOutputStream,DataOutputStream,PintStream)[子类]
输入字符流类的层次:
Reader(父类):BufferedReader(LineNumberReader),CharArrayReader,FilterReader(PushbackReader),InputStreamReader(FileReader), PipedReader,StringReader
输出字符流类的层次:
Writer(父类):BufferedWriter,CharArrayWriter,FilterWrite,OutputStreamWrite(FileWriter),PipedWriter,PrintWriter,StringWriter
// 除了在 java.io包中的"流"外,还有一个内置的流位于java.lang包中,就是 System类,System类包含了3个预定义的流变量,分别是 in,out和err,它们为 public和 static,这就意味着可以不通过 System类的对象就可以直接调用.System.out是标准的输出流,默认的情况是向显示器输出。System.in是标准输入流,在默认下是输入键盘的数据。System.err是标准错误流,默认的是向显示器输出.
原文:http://www.cnblogs.com/lin3615/p/4271035.html