File类


 String path="e:/img";
 String fileName="test.jpg";
 new File(path,fileName);//相对路径:相对于path的路径
 new File(new File(path),fileName);//同样是相对于path的路径


IO流分类

1、流向 输入流与输出流

  程序 与 文件|数组|网络连接|数据库

2、数据

     字节流  处理一切文件
    字符流   文本文件

3、功能分

          节点流 包裹源头,唯一IO的第一线,所有的操作都必须通过他们。可以直接从数据源或者目的地读取数据比如InputStream
      处理流 增强功能,不直接链接数据源或者目的地,通过包装节点流提高程序对流的处理性能

4、字节流(byte)可以指定编码

    输入流
      以程序为中心进来,InputStream
   输出流
      以程序为中心出去,OutputStream

5、字符流(char)无法指定编码

    输入流
       以程序为中心进来,Reader
    输出流
       以程序为中心出去,Writer

 在读写文件时,不会一下子读完或者写完,需要定义一个容量,每次读取或者写入固定容量的数据。循环读写直至完成。这个容量一般会用数组来做,字节流时byte数组,字符流用char数组。


 6、处理流

      处理流一定要在节点流之上,即要包裹节点流。后期应用一般加上方法
     字节缓冲流
        BufferInputStream
        BufferOutputStream
     字符缓冲流
        BufferReader  相对于处理流的字符流新增方法:readLine()读取一行
        BufferWriter  相对于处理刘的字符流新增方法:  newLine()一行的分隔符

  7、流的转换

      字节流转为字符流 用到InputStreamReader 或者是OutPutStreamWriter

      有时候读取文件的时候可以采用字符流来读取,但是字符流无法指定编码,所以在读取的时候可能会出现乱码的问题。所以可以通过字节流指定编码然后字节流转换成字符流。

      BufferReader br = new BufferReader(new InputStreamReader(new FileInputStream(new File("dd"),"utf-8")));

FileUtils

 

//读
List<String> lines = FileUtils.readLines(new File("D:/exportData0628"), "UTF-8");
//写
FileUtils.writeLines(new File("D:/exportData0628"), lines);
无觅关联推荐,快速提升流量