转载

Java_IO流---Commons IO_(IO流终极篇)

一、前言

  • 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对象的过程称为对象的反序列化。
原文  https://segmentfault.com/a/1190000019804998
正文到此结束
Loading...