- File类
- RandomAccessFile类
- 字节流类
- 字符流类
- 对象的序列化
File类
File类只用于表示文件(目录)的信息(名称、大小),不能用于文件内容的访问。
文件地址的路径用双斜杠隔开,斜杠可以正斜杠,也可以是反斜杠。File类中常用方法:
exists():判断文件是否存在,返回boolean类型; mkdir():创建目录; mkdirs():创建多级目录; delete():删除文件; createNewFile():创建文件;mkdir()和mkdirs()的区别:
mkdir()只能在已经存在的目录中创建文件夹,mkdirs()可以在不存在的目录中创建文件夹。RandomAccessFile类
该类可以对文件的内容进行访问,既可以读文件,也可以写文件。并且支持随机访问文件,可以访问文件的任意位置。读写方法write()、read()一次只能读写一个字节(后8位)。
//有两种模式,"rw"和"r"RandomAccessFile raf=new RandomAccessFile(file,"rw")
字节流类
- FileInputStream/FileOutputStream:读写字节流文件,只能读写低八位;
- DataOutputStream/DataInputStream:对流的功能进行了拓展,可以用writeInt()、writeDouble()等方法对int、long、字符等类型进行读取;
- BufferedInputStream/BufferedOutputStream:为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能;
字符流类
- InputStreamReader:完成byte流解析为char流,按照编码解析;
- OutputStreamWriter:提供char流到byte流,按照编码处理;
- FileWriter/ FileReader:直接将文件按字符读写;
- BufferedReader:其中的readLine()方法,可以一次读取一行;
- BufferedWriter/PrintWriter:一次输出一行;
对象的序列化
对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化。
序列化流(ObjectOutputStream)--writeObject() 反序列化流(ObjectInutStream)--readObject()序列化接口(Serializable):
对象必须实现序列化接口,才能进行序列化,否则将出现异常,这个接口,没有任何方法,只是一个 标准;transient关键字: 使元素不会进行jvm默认的序列化;
注意
- 写数据之后记得调用flush();
- 结束读取记得关闭所有流;