zoukankan      html  css  js  c++  java
  • java.io中流的操作:字节流、字符流

    java.io中流的操作:字节流、字符流
    (1)使用File类打开一个文件
    (2)通过字节流或字符流的子类指定输出的位置
    (3)进行读/写操作
    (4)关闭输入/输出

    1、字节流:主要是byte类型数据,以byte数组为准

    输出数据:OutputStream类:字节输出流最大父类
    输入数据:InputStream类

    (1)

    //第一步:使用File类打开电脑中的一个文档,文件不存在会自动创建
    File f = new File("文件路径");
    //第二步:通过字节流或字符流的子类指定输出的位置
    OutputStream out = null;
    out= new FileOutputStream(f);
    //要输出的对象
    String str = "Hello World";
    //只能输出byte数组,所以需要将字符串变为byte数组
    byte b[] =str.getBytes();
    //将内容输出
    out.write(b);
    //关闭输出流
    out.close();

    (2)

    //第一步:使用File类打开电脑中的一个文档
    File f = new File("文件路径");
    //第二步:通过字节流或字符流的子类指定读取的位置
    InputStream input = null;
    input= new FileInputStream(f);
    //进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
    byte b[] = new byte[1024];
    input.read(b);
    //关闭输入流
    input.close();
    //把byte数组变为字符串输出
    System.out.println("内容为:"+new String(b));

    2、字符流

    输出数据:Writer类
    输入数据:Reader类

    (1)

    File f = new File("文件路径");
    Writer out = null;
    out= new FileWriter(f);
    String str = "Hello World";
    out.write(str);
    out.close();

    不需要将字符串变为byte数组之后再输出

    (2)

    //第一步:使用File类打开电脑中的一个文档
    File f = new File("文件路径");
    //第二步:通过字节流或字符流的子类指定读取的位置
    Reader reader = null;
    reader= new FileReader(f);
    //进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
    char c[] = new char[1024];
    reader.read(c);
    //关闭输入流
    reader.close();
    //把byte数组变为字符串输出
    System.out.println("内容为:"+new String(c));

    区别:字符流操作时使用了缓冲区

    缓冲区:关闭字符流时会强制性地将缓冲区中的内容进行输出,没有close(),缓冲区的内容是无法输出的,flush()方法会强制性清空缓冲区内容,然后输出数据

    3、转换流——字符流<——>字节流

    OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流(存储在文件中的只能是字节形式的数据)
    InputStreamReader:是Reader的子类,将输入的字节流变为字符流(比如:BufferReader操作的只能是字符流)

  • 相关阅读:
    PHP调试总结
    vim常用命令
    Xshell
    JavaScript
    HTML+CSS
    解决VMware“该虚拟机似乎正在使用中”问题
    MVC dirname(——FILE——)
    各种编程语言中的指针和引用
    Go defer 原理和源码剖析
    软件架构定义的流派
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/6184284.html
Copyright © 2011-2022 走看看