1.文件管理
1.1 概述
- java中,对文件和目录使用java.io.File类来管理
- 主要是针对文件或目录进行管理,包括属性信息的查看、文件或目录的删除、文件或目录的创建。
1.2 File类
1.2.1主要方法
- 构造方法
- 创建文件 createNewFile()方法
- 创建目录 mkdir()方法 mkdirs()方法
- 文件删除
- 删除目录
- 在删除目录时,要求目录中没有其它的文件和文件夹,是一个空目录。
- 如果目录下面还有文件,使用循环删除文件处理
- 如果目录下面还有目录,则需要使用递归方式删除目录处理
1.2.2 其他方法
- 获取文件名
- 获取目录名
- 获取文件大小
- 设置文件只读
- 测试应用程序对文件是否可执行\可读\可写
- 获取文件路径操作
- 获取文件最后修改时间戳
- 获取磁盘空间操作
- 获取所有磁盘分区
- 对文件重命名
- 获取文件是否隐藏文件
2.IO流
2.1 简介
- 是一串连续不断的数据集合,对于程序中数据的输入和输出,都是以数据流的方式进行操作
- Input流:输入流(读流)
- Output流:输出流(写流)
- 站在当前正在运行的程序的角度,来看数据是输入还是输出
- 源:键盘、文件、网络URL地址、扫描仪、物联网设备等
- 目标:屏幕、文件、网络URL地址、数据库、物联网设备等
2.2 IO流分类
- 按流的方向划分:输入流、输出流
- 按处理数据单位划分:字节流、字符流
- 按功能不同:节点流、处理流
2.3 四个主要流的API
- Inputstream: 面向字节的输入流
- Outputstream: 面向字节的输出流
- Reader: 面向字符的输入流
- Writer: 面向字符的输出流
2.4 文件操作流
- FileReader、FileWriter、 FileinputStream、 FileOutputStream
2.4.1 FileWriter
- 字符流实现原理:字节流+编码表
- 字符集:unicode字符集 UTF-8、UTF-16、UTF-32、GB2312、GBK、GB18030
- 使用FileWriter将字符串写入磁盘文本文件
2.4.1.1常用构造方法
- FileWriter(String fileName) :将内容写入到给定名字的文件中,文件可以不存在,也可以存在
- FileWriter(String fileName,boolean append) 可追加
- FileWriter(File file) :将内容写入file所对应的文件中,文件可以不存在,也可以存在
- FileWriter(File file,boolean append) :可追加
- FileWriter(String fileName,CharSet set) 指定字符集
2.4.1.2写数据的五种用法
- write(String str):将一个字符串写入文件
- write(int c) :将一个字符写入文件
- write(char[] chars):将一个字符数组写入文件
- write(char[] chars,int off,int len) :将一个字符数组,从off位置,写入len长度
- write(String str,int off,int len) :将一个字符串,从off位置,写入len长度
2.4.2BufferedWriter
- BufferedWriter和FileWriter的区别
- FileWriter内部有8192个字节缓冲区
- BufferedWriter内部有8192个字符(16384个字节)
- FileWriter效率低,每次来一个字符,要查一次码表,BufferedWriter,缓冲区字符存满或者close、flush之后,才会进行查码表
- 使用BufferedWriter可以指定缓冲区大小
- 如果频繁去写文件,最好使用BufferedWriter处理,如果只写一次,FileWriter就可以使用。