java中几种文件流的使用方法
文件类
-
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);
上一篇:
IDEA上Java项目控制台中文乱码