IO流详解

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值