IO流 (Input Output).
io技术主要的作用:设配和设配之间的数据传输。
java中流根据流的流向把流分为两种:
输入流: InputStream , FileInputStream , FileReader
输出流: OutputStream , FileOutputStream ,FileWriter
根据流的操作:
.字节流: 字节流操作的数据是二进制数据,不会做任何操作。
字符流: 字符流操作的数据也是二进制数据,会将二进制数据转换为我们能够看得懂的字符。
字节输入流
InputStream:是所有字节输入流的超类 ,抽象的类
FileInputStream : 文件字节输入流,用来读取文件中的 数据到内存中。
BufferedInputStream : 自带有一个缓冲区 ,内部会帮我们定义一个byte类型的数组
FileInputStream的使用步骤:
1.找到你需要读取的目标文件
2.建立通道
3.读取数据 read() 一次只能读一个字节
4.关闭资源,释放资源。
BufferedInputStream :使用步骤
1.获取目标文件
2.建立通道 (FileInputStream)
3.建一个缓冲输入字节流
4.读取数据 read()
5.关闭资源,释放资源。
字节输出流
OutputStream : 他是所有字节输出流的超类。抽象的类
FileOutputStream : 主要对文件进行操作。 文件字节输出流。
BufferedOutputStream: 缓冲输出字节流。 提高数据的写入效率
FileOutputStream 的使用步骤:
1.需要有一个写入数据的目标文件
2.建立通道
3.开始写入数据
4.关闭资源
FileOutputStream 使用注意点:
1.写入数据的时候如果该文件存在会覆盖当前文件的内容
2.如果没有指定的文件,他会默认创建一个。
3.如果需要追加数据 需要使用FileOutputStream(File file, boolean append)
构造方法。append 如果true 就表示追加。
输入字符流:
Reader:他是输入字符流的超类 ,也是一个抽象的类
InputStreamReader: 转换流 ---> 将s输入字节流转为输入字符流
FileReader: 文件字符流
BufferedReader: 缓冲字符输入流
InputStreamReader 的使用步骤
字符输出流:
Writer:字符输入流的超类
OutputStreamWriter : 将输出字节流转为输出字符流 ,流的转换
FileWriter
BufferedWriter: 缓冲字符输出流 提供写入数据的效率
总结:
字节流: InputStream FileInputStream BufferedInputStream
OutputStream FileOutputStream BufferedOutputStream
字符流: Reader FileReader InputSteramReader
Writer FileWriter OutputStreamWriter
SequenceInputStream :序列流
作用: 可以将多个文件合并成一个文件。
SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
ObjectOutputStream:对象流
ObjectOutputStream使用注意点:
1.必须要序列化的类才能通过对象流进行写入数据 ,实现 Serializable接 口
2.读取数据的时候要保证serialVersionUID一致,否则就会读取失败
3.如果你不想让某个属性写入到文件中可以使用transient来修饰属性
ObjectOutput
writeObject(Object obj)
将对象写入底层存储或流。
ObjectInput
readObject()
读取并返回对象。
Properties 集合
Properties存值也是采用键值对。 键和值都是字符串类型。
Properties作用: 用来创建配置文件和读取配置文件
Map
|--Hashtable
|--Properties
Properties:该集合不需要泛型,因为该集合中的键值对都是String类型。
1.可以将集合中的数据进行指定目的的存储。
store(OutputStram,String comment)方法
2.可以将流中的规则数据加载进行集合,并称为键值对。
load(InputStream)
3.存入键值对:setProperty(key,value);
4.获取指定键对应的值:value getProperty(key);
打印流
PrintWriter: 是一个字节打印流,System.out对应的类型就是PrintStream。
来源: http://www.bubuko.com/infodetail-1961099.html