• IO字 节流/字符流 读取/写入文件



    流是指一连串流动的数据信号,以先进,先出的方式发送和接收的通道

    流的分类
    根据方向分为
    输入流
    所有接收,获得,读取的操作都是属于输入流
    所有的输入流名字都带有input或Reader

    输出流
    所有发送,写的操作都是属入输出流
    所有的输出流名字都带有output或Writer

    根据格式划分

    字节流
    单字节为单位发送或接收数据,所有的数据格式都可以通过字节流来传输
    但是字节流对中文(以及其他双字节的文字)格式不能直接支持,需要编码转换
    字节流可以传输所有的文件包括二进制文件
    字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的

    字符流
    双字节为单位(1字符)发送或接收数据,只能用于发送或接收文本格式的数据(比如txt文件),
    本身支持中文(以及其他双字节文字)格式,不需要转码操作。
    字符流只能传输文本文件
    字符流在操作时使用了缓冲区,通过缓冲区再操作文件。

    JAVA中流的结构图。

    字符流复制文件

    File file=new File("d:\1.txt");
    FileReader fr=new FileReader(file);
    BufferedReader br=new BufferedReader(fr);//读取一行
    File file2=new File("d:\2.txt");
    FileWriter fw=new FileWriter(file2);
    BufferedWriter bw=new BufferedWriter(fw);//添加一行
    String str=br.readLine();
    while (str!=null) {
    bw.write(str);
    str=br.readLine();
    }
    bw.close();
    fw.close();
    br.close();
    fr.close();

    字节流复制文件

    File file1 = new File("D:/1.gif");
    File file2 = new File("D:/2.gif");
    FileInputStream in = new FileInputStream(file1);
    FileOutputStream out = new FileOutputStream(file2);
    int a = in.read();
    while(a!=-1){
    out.write(a);
    a = in.read();
    }
    out.close();
    in.close();

  • 相关阅读:
    vue 遇到的问题
    vue webpack添加jQuery
    如何将在线电子书保存为pdf格式
    swagger 支持动态host和basePath
    本地chrome调试服务器node
    滚动页面一定距离后固定导航条
    发布-订阅模式
    react生命周期
    redux
    原型及继承
  • 原文地址:https://www.cnblogs.com/laotan/p/3649553.html
Copyright © 2020-2023  润新知