【摘要】 目录
1、什么是IO流
2、流的分类
3、流的四大家族首领
4、java.io.*包下需要掌握的16个流
5、FileInputStream的实用方法
6、FileOutputStream的方法
7、文件复制/拷贝
8、FileReader的使用
9、FileWriter的使用
10、复制普通文本文件
11、BufferedReader带有缓冲区的字符输…
目录
14、DataOutputStream和DataInputStream数据流
1、什么是IO流
I:Input 例如:从硬盘中读取数据进入CPU的内存
O:Output 例如:从CPU的内存读取数据进入硬盘
流:在管道(pipe line)中产生的一种计算模式
IO流:以内存为参照物,完成硬盘文件的读和写
2、流的分类
按流的方向分类:
- 输入内存(读Read),称为输入流
- 输出内存(写Write),称为输出流
按读取方式分类:
- 万能字节流,所有文件都是字节构成,例如:流 一次读取一个字节byte,等同于一次读取8个二进制
- 方便字符流,普通文本文件是由字符构成,例如:流 一次读取一个字符,且只能读取纯文本文件.txt,连word文件都无法读取(普通文本文件指的是能用记事本编辑器打开的文件,并不是都是.txt文件)
举例子:
万能字节流:
假设文件file1.txt,采用字节流读取
a中国bccc
第一次读:一个字节,正好读到 ‘a’
第二次读:一个字节,正好读到 ‘中’ 字符的一半
第三次读:一个字节,正好读到 ‘中’ 字符的另外一半
方便字符流:
假设文件file2.txt,采用字符流读取
a中国bccc
第一次读:一个字符,正好识别读到 ‘a
第二次读:一个字符,正好识别读到 ‘中’
第三次读:一个字符,正好识别读到 ‘国’
疑惑:java中的英文字符a不是应该占用两个字节吗?为什么读取的时候读一个字节就可以将英文字符a读出来,因为file1.txt属于windows操作系统的内容,在这个文件中,只是windows操作系统的普通文件
JAVA所有流都是在java.io.*这个包内
主要研究怎么new流对象,调用流对象的哪个方法是读,哪个方法是写
3、流的四大家族首领
java.io.InputStream 字节输入流
java.io.OutputStream 字节输出流
java.io.Reader 字符输入流
java.io.Writer 字符输出流
规律:
Stream结尾的类包就是代表字节流,Reader结尾的类包就是代表字符流
四大家族的首领都是抽象类(abstract class)
四大家族的首领都实现了:java.io.Closeable接口,都有close( )方法,都是可关闭的
流的本质是在管道内流通,就占用较多的系统资源,需要养成用完流之后进行关闭流的操作的习惯 ,强行刷新清空管道中剩余未输出的数据,没有flush( )可能会导致数据丢失
四大家族的首领都实现了:java.io.Flushable接口,都有flush( )方法,都是可刷新的
4、java.io.*包下需要掌握的16个流
文件流:
java.io.FileInputStream (掌握)
java.io.FileOutputStream(掌握)
java.io.FileReader
java.io.FileWriter
转换流:(将字节流转换成字符流)
java.io.InputStreamReader
java.io.OutPutStreamWriter
缓冲流:
java.io.BufferedReader
java.io.BufferedWriter
java.io.BufferInputStream
java.io.BufferedOutputStream
数据流:
java.io.DataInputStream
java.io.DataOutputStream
标准流:
java.io.PrintWriter (掌握)
java.io.PrintStream (掌握)
对象流:
java.io.ObjectInputStream (掌握)
java.io.ObjectOutputStream (掌握)
5、FileInputStream的实用方法
代码演示(从一个文件中逐个读出内容):
步骤一:新建一个文件123.txt ,复制文件路径(文件内容abc中)
步骤二:读出文件内容
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END喜欢就支持一下吧点赞 0 分享 相关推荐