1:File,RandomAccessFile都在java.io包。
IO流的一系列类型也都在此包下。
2:
输出(output): 从程序中把数据写出到外界.
输入(input): 从外界读取数据到程序中。
3:流的分类
(1)按照读写数据的单位大小分类:
字节流
字符流
(2)按照读写时是否与外界设备(硬盘,内存)等节点直接连接。
节点流:直接与外界设备关联的流。
处理流:不是直接与外界设备相关联,一般都是以节点流
为参数的
(3)按照处理效率分类
低级流
高级流
4:
InputStream:是字节输入流的父类(抽象类型)
OutputStream:是字节输出流的父类(抽象类型)
Reader:是字符输入流的父类(抽象类型)
Writer:是字符输出流的父类(抽象类型)
5:文件输入输出流:(字节流)
FileOutputStream
构造器:FileOutputStream(File file)
FileOutputStream(String filepath)
FileInputStream
构造器:
FileInputStream(File file)
FileInputStream(String filepath)
常用方法:
write(int num):
写num二进制的低八位
write(byte[] bytes)
write(byte[] bytes,int index,int length)
int read():
读取一个字节,放入int类型的低八位上
read(byte[] bytes):
读取有效个字节,存入字节数组中。
注意:输出流会帮助创建文件,而输入流不会。
1:文件输出输入字节流
FileInputStream
FileOutputStream
构造器的特点:
输出流的构造器
[]:表示可有可无
FileOutputStream(File file[,boolean append])
FileOutputStream(String filepath[,boolean append])
输入流的构造器:
FileInputStream(File file)
FileInputStream(String filepath)
2:缓冲字节流:设计了一个缓冲区的机制。读写效率高
BufferedOutputStream的构造器
BufferedOutputStream(OutputStream os)
BufferedInputStream的构造器
BufferedInputStream(InputStream is)
3:DataOutpuStream和DataInputStream
数据输入输出流
构造器都要传参:传入的是一个字节流。
DataOutpuStream(OutputStream os)
DataInputStream(InputStream is)
4:对象输入输出流:
ObjectOutputStream和ObjectInputStream
构造器都要传参:传入的是一个字节流
作用:
对象输出流:是将对象转换成一串字节序列(序列化)
对象输入流: 是将一串字节转换成对象(反序列化)
序列化时应注意的特点:
1:被序列化的对象的类型必须实现Serializable接口
2:提供序列化版本号的属性。
(以防类型被改变后不能反序列的问题出现-兼容性问题)
序列化的修饰词:transient
作用是:对象的某些属性没必要持久化时,可以在类型的
这些属性前添加此修饰词
字符流:读写时都是以字符为单位进行的。
1:字符流的父类:
输出流:Writer
输入流:Reader
2:OutputStreamWriter:
构造器如下:
输出流的构造器:
OutputStreamWriter(OutputStream os)
OutputStreamWriter(OutputStream os,String charset)
InputStreamReader:
构造器如下:
输入流的构造器:
InputStreamReader(InputStream is[,String charset])
3:缓冲字符流:
BufferedWriter
字符输出缓冲流
构造器: