官方文档API

File 类

1、java.io 包
2、file对象和真实文件的映射关系
file对象(内存) …… 真实文件(硬盘)
3、常用方法
canRead、canWrite、isHidden、length、isFile、isDirectory
getAbsolutePath、getName
createNewFile、mkdir、mkdirs
getParentFile、getParent
listFiles、list
delete

文件流

FileInputStream/FileOutputStream
FileReader/FileWriter(只能操作纯文本)

1
2
File file = new File("d://test/test.txt");
FileInputStream fs = new FileInputStream(file);

常用方法:read、write、close、available、skip、flush

缓冲流

BufferedInputStream/BufferedOutputStream
BufferedReader/BufferedWriter

1
2
3
4
File file = new File("d://test/test.txt");
FileInputStream fs = new FileInputStream(file);

BufferedInputStream bis = new BufferedInputStream(fs);

构建方法需要使用低级流构建,缓冲流构建时没有 boolean 类型的参数
基本使用与低级流方法一致

常用方法:read、write、close、available、skip、flush

1
2
3
4
File file = new File("d://test/test.txt");
FileReader fs = new FileReader(file);

BufferedReader bis = new BufferedReader(fs);

常用方法多一个:readLine

注意事项

文件流编译时异常,必须处理异常
文件流必须要关闭,finally 中 close()

数组流

ByteArrayInputStream/ByteArrayOutputStream
CharArrayReader/CharArrayWriter

数据流

DataInputStream/DataOutputStream

字符串流

StringReader/StringWriter

对象流

ObjectInputStream/ObjectOutputStream

实现 对象的序列化/反序列化
序列化:将一个完整的对象拆分成字节碎片,记录在文件中。(需要实现 Serializable 接口)
反序列化:将文件中记录的对象碎片,反过来组合成一个完整的对象。(需要给对象提供一个序列化的版本号)

1
2
3
4
public class Person implements Serializable {
private static long serialVersionUID = -440948;
......
}

银行系统示例