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操作的只能是字符流)

  • 相关阅读:
    Unique Binary Search Trees——LeetCode
    Binary Tree Inorder Traversal ——LeetCode
    Maximum Product Subarray——LeetCode
    Remove Linked List Elements——LeetCode
    Maximum Subarray——LeetCode
    Validate Binary Search Tree——LeetCode
    Swap Nodes in Pairs——LeetCode
    Find Minimum in Rotated Sorted Array——LeetCode
    Linked List Cycle——LeetCode
    VR AR MR
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/6184284.html
Copyright © 2011-2022 走看看