Java文件操作

什么是文件

文件可认为是相关记录或放在一起的数据的集合.
Java程序中表示文件: Java API=>java.io.File类
File类访问文件属性:
在这里插入图片描述

File类的常用方法:

boolean exits() 判断文件或目录是否存在 boolean isFile() 判断是否是文件 boolean isDirectory() 判断是否是目录 String getPath() 返回此对象表示的文件的相对路径名 String getAbsolutePath() 返回此对象表示的文件的绝对路径名 String getName() 返回此对象表示的文件或目录的名称 boolean delete() 删除此对象指定的文件或目录 boolean creatNewFile() 创建名称的空文件,不创建文件夹 long length() 返回文件的长度,单位为字节,如果文件不存在,则返回0L

程序通过流来读写文件: 流是指一连串流动的字符(字节),是以先进先出方式发送信息的通道.
在这里插入图片描述
输入/输出流与数据源
在这里插入图片描述

Java流的分类

输入输出流是相对于计算机内存来说的
在这里插入图片描述

字节流是8位通用字节流,字符流是16位Unicode字符流
在这里插入图片描述

文件的读写

文本文件的读写

  • 用FileInputStream和FileOutputStream读写文本文件.
  • 用BufferedReader和BufferedWriter读写文本文件.

二进制文件的读写

  • 使用DataInputStream和DataOutputStream读写二进制文件.

文本文件的读写

使用字节流读文本文件
在这里插入图片描述

FileInputStream小结
在这里插入图片描述

使用字节流写文本文件

在这里插入图片描述

FileOutputStream小结
在这里插入图片描述
⚠️⚠️⚠️注意
1.前两种构造方法在向文件写数据时将覆盖文件中原有的内容.
2.创建FileOutputStream实例时,如果相应的文件并不存在,则会 自动创建一个空的文件.
3.创建文件时,必须保证其路径存在,否则文件创建失败.


使用字符流读写文件
在这里插入图片描述

使用FileReader读取文件
在这里插入图片描述

使用BufferedReader读文本文件
如何提高字符流读取文本文件的效率?
使用 FileReader类与 BufferedReader类.

BufferedReader类是Reader类的子类,带有缓冲区,按行读取内容的readLine()方法(这是BufferedReader类特有的方法)
在这里插入图片描述

Reader类常用方法

  • int read()
  • int read(byte[] c)
  • read(char[] c,int off,int len)
  • void close()

子类BufferedReader常用的构造方法

  • BufferedReader(Reader in)

子类BufferedReader特有的方法

  • readLine()

FileWriter写文件
在这里插入图片描述

使用BufferedWriter写文件
如何提高字符流读取文本文件的效率?
使用 FileWriter类与 BufferedWriter类.

BufferedWriter类是Writer类的子类,带有缓冲区。
在这里插入图片描述

Writer类常用方法

  • writeString str)
  • write(String str,int off,int len)
  • void close()
  • void flush()

子类BufferedWriter常用的构造方法

  • BufferedWirter(Writer out)

二进制文件的读写

DataInputStream类

  • FileInputStream的子类
  • 与FileInputStream类结合使用读取二进制文件

DataOutputStream类

  • FileOutputStream的子类
  • 与FileOutputStream类结合使用读取二进制文件

使用DataInputStream读二进制文件
在这里插入图片描述

使用DataOutputStream写二进制文件
在这里插入图片描述


Properties文件

在配置文件中经常用到"键-值"对的组合.
常见的properties文件:
用户的配置;用户密码的保存等等.
在这里插入图片描述

使用Properties类读出配置
Java中可以使用Properties类来读取和写入Properties文件.
在这里插入图片描述

Properties类
在这里插入图片描述

使用Properties类写入配置
在这里插入图片描述


小结

  • File类用于访问文件或目录的属性
  • 程序和数据源之间通过流练习

输出流和输入流
字节流和字符流

  • FileInputStream和FileOutputStream以字节流的方式读写文本文件
  • BufferedReader和BufferedWriter以字符流的方式读写文本文件,而且效率更高
  • DataInputStream和DataOutputStream 可用于读写二进制文件
  • 使用Properties类可以方便地读出和写入配置文件
下一篇:MFC文件操作

代码交流 2021