一、前言
- Apache Commons IO是Apache基金会创建并维护的Java函数库。
- 它提供了许多类使得开发者的常见任务变得简单,同时减少重复代码
二、Commons IO 类库
-
2.1 FileUtils 文件操作工具类
-
提供方法
- 复制文件夹
- 复制文件
- 下载文件
- 把字符串写入文件
- 把字节数组写入文件
- 把集合里面的内容写入文件
- 往文件里面写内容
- 文件移动
- 清空和删除文件夹
- 创建文件夹
- 文件获取输入/输出流
- 读取文件
- 测试两个文件的修改时间那个比较新/老
- 其他
-
-
2.2 IOUtils 流操作工具类
-
2.2.1
功能:提供用于读取,写入和复制文件的实用方法。 这些方法适用于InputStream,OutputStream,Reader和Writer。 -
2.2.2
方法- 为输入/输出操作提供静态实用程序方法。
-
toXXX()
– 从流中读取数据。 -
write()
– 将数据写入流。 -
copy()
– 将所有数据复制到另一个流的流。 -
contentEquals
– 比较两个流的内容。
-
2.2.3
demo//方式1:使用缓冲读取器逐行读取文件 public static void readUsingTraditionalWay() throws IOException { try(BufferedReader bufferReader = new BufferedReader( new InputStreamReader( new FileInputStream("data.txt") ) )) { String line; while(( line = bufferReader.readLine()) != null ) System.out.println( line ); } //方式2:使用IOUtils一次读取文件 public static void readUsingIOUtils() throws IOException { try(InputStream is = new FileInputStream("data.txt")) { System.out.println(IOUtils.toString(is, "UTF-8") ); } }
-
三、IO流总结
-
1、按流的划分
- 输入流:数据源到程序(InputStream、Reader读进来)
- 输出流:程序到目的地(OutPutStream、Writer写出去)
-
2、按流的处理的数据单元分类
- 字节流:按照字节读取数据(InputStream、OutputStream)。
- 字符流:按照字符读取数据(Reader、Writer)。
-
3、 按流的功能分类:
- 节点流:可以直接从数据源或目的地读写数据。
- 处理流:不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能
- 4、 IO的四个基本抽象类:InputStream、OutputStream、Reader、Writer
-
5、InputStream的实现类:
FileInputStream
ByteArrayInutStream
BufferedInputStream
DataInputStream
ObjectInputStream
-
6、 OutputStream的实现类:
FileOutputStream
ByteArrayOutputStream
BufferedOutputStream
DataOutputStream
ObjectOutputStream
PrintStream
-
7、 Reader的实现类
FileReader
BufferedReader
InputStreamReader
-
8、 Writer的实现类
FileWriter
BufferedWriter
OutputStreamWriter
- 9、把Java对象转换为字节序列的过程称为对象的序列化。
- 10、 把字节序列恢复为Java对象的过程称为对象的反序列化。
发表回复