小小地总结一下IO经常使用的方法

用于自己以后观看。

public class CopyImg {
 public static void main(String[] args) throws IOException {
  FileInputStream inputStream=new FileInputStream("D:\\TestExcel\\测试图片.jpg");
  FileOutputStream outputStream=new FileOutputStream("D:\\TestExcel\\测试图片-副本.jpg");
  int len=0;
  byte[] buff=new byte[1024];//这个桶是每次读取时的大小,当文件小时可以一次性读完,比如直接搞个[1024*1024]大小的。但是图片大的时候就不应该
//从该输入流读取最多buff.length字节的数据到字节数组,比如这个图片有2048byte长,那么就需要分两次写进outputStream inputStream.read(buff) 所以buff此时有了图片的“一部分”字节数据 //返回值为读取到的字节数量 //当读完了,len就等于-1while((len=inputStream.read(buff))!=-1) { //将buff里面,从第0个开始的len个字节写入到输出流,因为到最后一次write的时候,不一定是1024长度,最后一次可能只有1,或者100,或者1004长度,所以需要用write(buff,0,len)而不能直接用write(buff) outputStream.write(buff, 0, len); } inputStream.close(); outputStream.close(); System.out.println("复制成功^_^"); } }

Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类,所有的输出流都是抽象类OutputStream(字节输出流)或者抽象类Writer(字符输出流)的子类。

  1. FileReader:读取数据
  2. FileWriter:写入数据
  3. 字节流

    FileInputSteam:从文件系统中的某个文件中获得输入字节.读取文件的数据

    FileOutputStream:将数据写入的输出流.

posted @ 2020-08-20 20:14  拿着放大镜看世界  阅读(183)  评论(0编辑  收藏  举报