IO和序列化机制
基本的流

InputStream(基本字节输入流)
低级流 FileInputStream(基本文件字节输入流)
高级流 BufferInputStream(缓冲字节输入流)
OutputStrem(基本字节输出流)
低级流 FileOutputStream(基本文件字节输出流)
高级流 BufferOutputStream(缓冲字节输出流)
Reader(基本字符输入流)
低级流 FileReader(基本文件字符输入流)
高级流 BufferReader(缓冲字符输入流)
InputStreamReader(转换字符流)
Writer(基本字符输出流)
低级流 FileWriter(基本文件字符输出流)
高级流 BufferWriter(缓冲字符输出流)
OutputStreamWiter(转换字符流)
1 | //使用IO流进行读写基本操作步骤 |
2 | // 1提供文件和流 |
3 | Reader br = null; |
4 | Writer bw = null; |
5 | try{ |
6 | br = new BufferedReader(new FileReader(new File("he.txt"))); |
7 | bw = new BufferedWriter(new FileWriter(new File("hecopy.txt"))); |
8 | //2设置char[]数组 |
9 | char[] buffe = new char[1024]; |
10 | int len; |
11 | //3读写操作 |
12 | while((len = br.read(buffe)) != -1){ |
13 | bw.write(); |
14 | bw.writeLine(buffe,0,len); |
15 | } |
16 | }catch(Exception e){ |
17 | e.printStackTrace(); |
18 | }finally{ |
19 | //4关闭流 |
20 | if(br != null){ |
21 | try{ |
22 | br.close(); |
23 | }catch(Exception e){ |
24 | e.printStackTrace(); |
25 | } |
26 | } |
27 | if(bw != null){ |
28 | try{ |
29 | bw.close(); |
30 | }catch(Exception e){ |
31 | e.printStackTrace(); |
32 | } |
33 | } |
34 | } |
35 | |
流的分类

转换流

InputStreamReader (读入)将字节流转换为字符流 相当于解码
OutputStreamWriter (写出)将字符流转换为字节流 相当于编码
转换流属于字符流 可以设置字符集 前后一致
序列化
序列化 使对象从内存转为二进制读到硬盘 或者通过网络传输 ObjectOutputStream
反序列化 把文件中或者网络传输的数据转换为对象存到内存 ObjectInputStream
序列化要求 实现Serializable接口 提供SerialVersionUID 内部属性也要是可序列化的
ObjectOutputStream和ObjectInputStream不能实例换static和transient修饰的成员变量