File类:
createNewFile():创建新文件。
mkdir():创建目录。
delete():删除文件或目录。
createTempFile():创建临时文件。
deleteOnExit():程序结束时,删除文件,临时文件也一并删除。
list():返回文件列表。
isDirectory():是否是一个文件目录。
因为反斜杠在java中有其意义,所以在创建路径的时候不能用"\"。可以用分隔符separator,File.separator在File构造器中表示根目录。
流的分类及输入/出流:
节点流:从特定的地方写出的流(白色)。
过滤流:使用节点流作为输入或者输出(淡黄色)。
String.getBytes():字符转化为字节。
read():读取字节。
write():写入字节。
BufferedInputStream、BufferedOutputStream:使用缓存,BufferedInputStream实现flush()方法,BufferedOutputStream实现了mark()、reset()方法。
DataInputStream、DataOutputStream:可以读写java基本数据类型。
PipedInputStream、PipedOutputStream:线程中实现数据通信,成对出现。
Reader、Writer:
BufferedWriter中readLine():可以按行读取数据。
FilterReader和FilterWriter实现字节字符的转化。FileWriter (Writer图中的FileReader,图中画错)提供字节像字符转化,不进行写入操作。
RandomAccessFile类:
实现DataInputStream和DataOutputStream接口,提供了对文件随机存取的能力。
writeByte():写入一个字节(中文因为至少两个字节,所以不可以用它写入)。
writeChars():写入两个字节。
writeUTF():在写入数据的时候,会记录字节的写入长度(字符的前两个字节)。
getFilePointer():用RandomAccessFile读取数据的时候,要用文件指针操作。返回文件的偏移量,会报出EOFException异常。
seek():记录文件执政的偏移量, 伴随文件的读取往后移动。
对象序列化:
实现对象序列化:必须实现Serializable或Extermalinable接口。
ObjectInputStream中writeObject():对象序列化。
ObjectOutputStream中readObject():反序列化。
1.反序列化不掉用房构造方法。
2.序列化时不保存成员方法和静态成员变量。
3.若成员变量是一个对象,则此对象也会被保存。
4.序列化对象中若存在不可序列化对象的引用,则会序列化失败,抛出NotSerizaliableException。用transient修饰此对象,使其不保存。
5.序列化时会调用writeObject()方法(私有,但是序列化都会调用,java中特列),readObject()和writeObject()一样,只不过在反序列化时调用。