本文为博主原创,更多好文章请点击这里
文件类
- exists() 判断文件或者目录是否存在
- isFile() 判断是否是文件
- isDirectory() 判断是否是目录
- getPath() 获取文件相对路径
- getAbsolutePath() 获取文件绝对路径
- getName() 获取文件名
- length() 获取文件内容的字节长度
- delete() 删除文件
- createNewFile() 创建一个空的文件
字节输入流
- 父类是InputStream
- 子类FileInputStream
- read() 方法从字节流中读取内容
- available() 返回流中剩余的字节个数
- close() 方法关闭文件流,释放资源
注意:使用子类去读写文件
操作文件流的步骤
- 引入相关的类
- 构造文件流对象,建立数据通道
- 读写文件
- 关闭流释放资源
字节输出流
- 父类是OutputStream
- 子类FileOutputStream
- write() 方法将字节写入流中保存
- flush() 方法关闭文件流,释放资源
- close() 方法关闭文件流,释放资源
注意:当文件不存在会自动创建空文件,并写内容
如果希望写入的内容进行追加,需要在构造方法的时候添加true参数
FileOutputStream f2 = new FileOutputStream(file,true);
字符流操作
- Reader 和 Writer 是父类
- OutputStreamWriter 和 InputStreamWriter 是 Reader 和 Writer 是子类
- FileWriter 和 是 FileReader 和 InputStreamWriter 是子类
- write() 写入数据
- close() 关闭流
- BufferedWriter 和 BufferedReader是增强版的类,效率更高
注意:使用子类去读写文件
二进制文件的读写
- 使用 DataInputStream 和 DataOutputStream 类
- read() 读取二进制文件内容
- write() 写入二进制文件内容
- close() 关闭流
对象的序列化和反序列化
- 使用 ObjectInputStream 和 ObjectOutputStream 类
- 被序列化和反序列化的实体类,要实现Serializable接口
- 想要序列化和反序列化多个对象,可以将他们塞入集合,再对集合进行序列化写入和反序列化读入
例如
list.add(dog1);
list.add(dog2);
list.add(dog3);
writeObject(list);
本文为博主原创,更多好文章请点击这里