IO笔记 i: input 输入 O: Output 输出
- File类, 位于java.io,
Java中, 使用File类表示文件夹(目录)或者文件
硬盘的包含的东西: 文件夹 文件
文件: 文件夹路径:
Window操作系统: 绝对路径: 从盘符开始 d:\a\b\c.txt window的路径分隔符:
\ à windown的分隔符
Linux: 路径: 从根目录开始 /a/c/test.txt 分割符: /
Java 中: String path = “d:\a\b\c.txt”;
String path = “d:/a/b/c.txt”
File的属性:
static String |
separator 表示分隔符, 跨平台 |
构造方法:
File(File parent, String child) Parent: 父目录 , child 访问的文件名,或者的访问的文件夹的名字 |
File(String parent, String child) |
常用方法:
对文件,文件夹有什么操作:
读文件/文件夹信息
- 获取文件夹/文件的名字: getName()
- 获取路径: getPath() 获取路径
- 判断是否是一个文件夹(目录) isDirectory() true 是一个目录, false 不是
- 判断是否是一个文件 isFile() true 是一个文件, false 不是
- 获取文件夹/文件的最后一次修改时间: long lastModified() 时间的毫秒值
- 获取某个文件的大小 length() B字节
- 判断某个文件夹/文件是否存在 boolean exists() true 表示存在 false不存在
修改.创建文件夹,文件
- 新建文件夹:
mkdir() 只创建本级文件夹, 如果上级目录不存在,创建失败,如果上级目录存在,能创建
mkdirs() 如果上级目录不存在,创建上级目录, 再创建本级目录
- 创建文件:
createNewFile()
File只能创建文件,不能给文件添加内容, 添加内容(IO流) - 删除文件/文件夹 delete()
注意: delete()删除文件夹, 要求该文件夹是一个空文件夹(没有子文件夹,子文件) - 获取某个文件夹下的所有的子文件,子文件夹
String[] list() 表示返回的是子文件夹,文件的路径的字符串
File[] listFiles( ) 表示返回的是子文件夹,文件的File对象
File[] listFiles(FileFiter 筛选文件的过滤器)
2.IO类
IO分类:
- 按照方向分类
输入流
输出流 - 按照读写数据的大小
字节流: 一次性只能读写一个字节
字符流: 一次性只能读写一个字符(2个字节) - 按照作用:
节点流: 可以直接接在文件,网络上
处理流: 不能直接接在网络,文件上,只能嵌套在其他IO上
IO流的所有的类都是位于java.io包下:
输入流: 常用的方法: read() 读取 close() 关闭
输出流: 常用的方法: write() 写入 close() 关闭
文件复制: ctrl + c: 把文件中的数据 读取到内存
文件粘贴: ctrl + v: 把内存的数据, 写入到文件
3.文件的字节输入流, 文件的字节输出流:
FileInputStream FileOutputStream 都是节点流
FileInputStream :
构造方法:
FileInputStream(File file) file表示硬盘某个文件的File对象
FileInputStream(String filename) filename: 硬盘某个文件的路径
常用方法:
void |
close() 关闭IO流 |
int |
read() |
int |
read(byte[] b)
返回时b数组存放的长度 |
int |
read(byte[] b, int off, int len) |
int |
available() 得到某个文件估计的大小 单位是字节 |
把d:/info/a.txt 中内容读取到程序中, 并且在控制台显示
FileInputStream: 一次读1个字节
使用步骤:
- 创建IO的对象
- 调用IO的read() 读取数据
- 关闭IO流
FileOutputStream 文件字节输出流:
构造方法:
FileOutputStream(File file) 默认append 为false
FileOutputStream(File file, boolean append)
FileOutputStream(String file)
FileOutputStream(String file, boolean append)
注意: 如果这个文件不存在, 输出流会创建文件, 但是不能创建上级目录
append的作用: 是否追加, 默认值为false, 不追加, 会覆盖文件已有的内容
true, 追加 不会覆盖文件已有的内容,新写入的内容在文件末尾添加
常用方法:
void |
close() |
void |
write(byte[] b) |
void |
write(byte[] b, int off, int len) |
void |
write(int b) |
步骤:
- 创建输出流对象
- 调用write()写一个字节(循环写)
- 关闭资源
文件复制粘贴