步骤
创建源(src:源,dest:目的地)
选择流(输入流:从源输入到程序中、输出流:从程序输出到目的地) 以程序为中心
操作
read
int len;读取长度 byte flush = byte[1024]缓冲数组;while(-1!=(len=is。read(flush)))循环读取
write
write flush 刷新
释放资源
close()
流的类型
节点流(离数据源最近) 处理流(装饰模式,提高性能,增强功能,方便处理)
1.字节流 处理所有数据 1.转换流 处理编码与解码 统一字符集问题
InputStream InputStreamReader -->解码
FileInputStream OutputStreamReader -->编码
ByteArrayInputStream 2.缓冲流 提高性能
操作 read(字节数组) BufferedInputStream
缓冲数组 byte[] flush = new byte[1024] BufferedReader
接受长度 int len BufferedOutputStream
循环读取 while(-1!=(len=is。read(flush))) BufferedWriter
OutputStream 3.数据处理流
FileOutputStream 1)基本类型+字符串 先写出后读取,读取与写出顺序一致
ByteArrayOutputStream DataInputStream read类型
操作 DataOutputStream write类型
write(字节数组,0,length) 2)对象(引用类型) 先反序列化再序列化 顺序需一致需要实现 java.io.Serializable接口不需要序列化的属性前加transient做标识
ObjectInputStream ObjectOutputStream
2.字符流 处理纯文本
Reader 4.打印流 PrintStream
FileReader 5.System in|out|err
操作 read(字符数组) 重定向 System.setOut|In|Err 还原到控制台 FileDescriptor.out|in|err
缓冲数组 char[] flush = new char[1024] 6.包含新增方法不能使用多态的流
接受长度 int len ByteArrayOutputStream toByteArray()
循环读取 while(-1!=(len=reader。read(flush))) BufferedReader readLine()
Write BufferedWriter newLine()
FileWrite DataInputStream DataOutputStream
操作 ObjectInputStream ObjectOutputStream
write(字符数组,0,length) PrintStream
操作
1.文件拷贝
2.关闭流的方法