Java的IO类
File类
操作文件
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public File(String pathname) | 构造 | 设置操作文件的完整路径 |
2 | public File(File parent,String child) | 构造 | 设置操作文件的父目录和子文件路径 |
3 | public boolean createNewFile() | 方法 | 创建一个新文件 |
4 | public boolean delete() | 方法 | 删除文件 |
5 | public boolean exists() | 方法 | 判断文件是否存在 |
6 | public static final String separator | 常量 | 分隔符,例:new File(“d:”+File.separator+“java”) |
- 路径分割符通过使用该常量,可以避免在不同系统下,路径分割符不一致的问题
- 以下是程序到硬件设施之间的IO过程的底层实现
操作文件夹
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public boolean mkdir() | 方法 | 创建单级目录 |
2 | public boolean mkdirs() | 方法 | 创建多级目录 |
3 | public String getParent() | 方法 | 获取父目录信息(String) |
4 | public File getParentFile() | 方法 | 获取父目录文件对象(File) |
其他方法
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public boolean canExecute() | 方法 | 判断文件是否可执行 |
2 | public boolean canRead() | 方法 | 判断文件是否可读 |
3 | public boolean canWrite() | 方法 | 判断文件是否可写 |
4 | public String getAbsolutePath() | 方法 | 获取文件绝对路径 |
5 | public String getName() | 方法 | 获取路径名称 |
6 | public boolean isDirectory() | 方法 | 判断路径是否为目录 |
7 | public boolean isFile() | 方法 | 判断路径是否为文件 |
8 | public long lastModified() | 方法 | 获取路径最后修改时间(时间戳) |
9 | public long length() | 方法 | 获取文件大小(单位:byte) |
10 | public String list() | 方法 | 列出当前路径下所有文件信息(只有路径名) |
11 | public File[] listFiles() | 方法 | 列出所有路径的信息(File) |
12 | public boolean renameTo(File file) | 方法 | 改文件名 |
Stream
OutputStream
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public abstract void write(int b) | 方法 | 输出单个字节数据 |
2 | public void write(byte[] b) | 方法 | 输出全部字节数组的数据 |
3 | public void write(byte[] b,int off,int len) | 方法 | 输出部分字节数组的数据 |
FileOutputStream
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public FileOutputStream(File file) | 构造 | 设置文件输出流,每次都对原有文件进行覆盖 |
2 | public FileOutputStream(File file,boolean append) | 构造 | append设置为true,则每次对文件进行追加 |
InputStream
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public abstract void read(int b) | 方法 | 读取单个字节数据 |
2 | public void read(byte[] b) | 方法 | 读取全部字节数组的数据 |
3 | public void read(byte[] b,int off,int len) | 方法 | 读取部分字节数组的数据 |
FileInputStream
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public FileInputStream(File file) | 构造 | 创建文件输入流 |
Writer
- 使用Writer可以实现和OutputStream类似的功能
- 使用Writer可以直接对字符串进行操作(优势)
FileWriter
- 构造方法
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public FileWriter(File file) | 构造 | 创建Writer实现write操作 |
- 其他方法
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public void write(String s) | 方法 | 写入字符串(会覆盖) |
2 | public void append(String s) | 构造 | 追加字符串 |
Reader
- 使用Reader可以实现和InputStream类似的功能
- 使用Reader可以直接对字符串进行操作(优势)
FileReader
- 构造方法
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public FileReader(File file) | 构造 | 创建Reader实现read操作 |
- 其他方法
No | 方法名称 | 类型 | 作用 |
---|---|---|---|
1 | public void read(char[] c) | 方法 | 读取全部字符数据 |
2 | public void read(char[] c,int off,int len) | 方法 | 读取部分字符数据 |
- Writer与Reader类的关系
- 在如图所示的继承关系之外,OutputStreamWriter与InputStreamReader还分别依赖了OutputStream与InputStream,实际上OutputStreamWriter与InputStreamReader就是实现了将字节数据转为字符数据的过程。
内存流
- 和普通Stream类同理