第九章:IO流
File类
java.io.File类:表示文件或目录。
常用方法:
getName()
getPath()
getAbsolutePath()
length()
isFile()
isDirectory()
listFiles()
mkdir()/mkdirs()
createNewFile()
....
流的原理和分类
按照方向分:输入流和输出流
按照读写单位:字节流和字符流
按照功能:节点流和处理列
字节输入流和字节输出流(节点流)
字节输入:InputStream
InputStream抽象类,经常用使用其子类
FileInputStream类
字节输入流:OutputStream
OutputStream抽象类,不能实例化,可以使用其之类FileOutputStream
字符输入流和字符输出流(节点流)
字符输入流:Reader
Reader是抽象类,不能实例化,可以使用其子类
FileReader类
字符输出流:Writer
抽象类,其常用子类FileWriter
缓冲流(处理流)
字节缓冲流
BufferedInputStream
BufferedOutputStream
字符缓冲流
BufferedReader
BufferedWriter
转换流(处理流)
InputStreamReader
将字节输入流转为外字符输入流
OutputStreamWriter
将字节输出流转为字符输出流
打印流
PrintStream
PrintWriter
数据流
对java中的基本数据类型和字符串进行简化操作
DataInputStream
DataOutputStream
序列化和反序列化
序列化:将java对象转化为字节序列
反序列化:将字节序列转换为java对象。
为什么要序列化?
序列化后的对象可以保持在磁盘或通过网络进行传输,以达到对象共享的目的(字节序列可以跨平台)
序列化的前提:
如果对象要实现序列化,该类必须实现Seraliazable接口。
tranistant修饰的属性不会被序列化
静态的成员变量也不会序列化。
成员方法不会被序列化
ObjectInputStream
ObjectOutputStream
Properties文件的解析
java.util.Properties继承了Hashtable,采用键值对的方式进行存储。
常用的构造方法:
Properties()
常用的方法
load(InputStream in)
getProperty(String key)