1 输入输出流
1.1 定义
流的工作示意图
输入流与输出流的类层次图
1.2 字节流与字符流
字节流 | 字符流 | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
1.2.1 InputStream类
1.2.2 OutputStream类
1.2.3 Reader类
1.2.4 Writer类
1.3 节点流和处理流
1.3.1 节点流
节点类型 | 字节流 | 字符流 |
File文件 |
FileInputStream/FileOutputStream |
FileReader/FileWriter |
Memory Array | ByteArrayInputStream/ByteArrayOutputStream | ByteArrayReader/ByteArrayWriter |
Memory String | StringReader/StringWriter | |
Pipe | PipeInputStream/PipeOutputStream | PipeReader/PipeWriter |
1.3.2 处理流
处理类型 | 字节流 | 字符流 |
Buffering | BufferedInputStream/BufferedOutputStream | BufferedReader/BufferedWriter |
Filtering | FilterInputStream/FilterOutputStream | FilterReader/FilterWriter |
字节流转化为字符流 | InputStreamReader/OutputStreamWriter | |
Object serialization | ObjectInputStream/ObjectOutputStream | |
基本数据类型转换 | DataInputStream/DataOutputStream | |
行号处理 | LineNumberInputStream | LineNumberReader |
Peeking ahead可回退流 | PushbackInputStream | PushbackReader |
printing 可显示处理 | PrintStream | PrintWriter |
1.4 不同内容的读写
1.4.1标准输入与标准输出(从控制台输入与控制台输出)
例如:BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
br.readLine();
1.4.2 二进制流读写
import java.io.*; public class Dump { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { dump( new FileInputStream("aaa.bmp"), new FileOutputStream("bbb.bmp")); } catch(FileNotFoundException fex) { fex.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } public static void dump(InputStream src, OutputStream dest) throws IOException{ BufferedInputStream input = new BufferedInputStream(src); BufferedOutputStream output = new BufferedOutputStream(dest); int length =-1; byte[] data = new byte[1024]; while((length = input.read(data,0,1024)) != -1){ output.write(data,0,length); } input.close(); output.close(); } }
1.4.2 文件读写
原文:http://www.cnblogs.com/penghuster/p/4852893.html