java中几种文件流的使用方法

文件类

    exists() 判断文件或者目录是否存在 isFile() 判断是否是文件 isDirectory() 判断是否是目录 getPath() 获取文件相对路径 getAbsolutePath() 获取文件绝对路径 getName() 获取文件名 length() 获取文件内容的字节长度 delete() 删除文件 createNewFile() 创建一个空的文件

字节输入流

    父类是InputStream 子类FileInputStream read() 方法从字节流中读取内容 available() 返回流中剩余的字节个数 close() 方法关闭文件流,释放资源 注意:使用子类去读写文件

操作文件流的步骤

  1. 引入相关的类
  2. 构造文件流对象,建立数据通道
  3. 读写文件
  4. 关闭流释放资源

字节输出流

    父类是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);
经验分享 程序员 微信小程序 职场和发展