Java中的IO流

Java中的IO流_第1张图片

在这里插入图片描述

在Java中,I/O(输入/输出)流用于处理与输入和输出相关的操作。Java的I/O流按照数据处理的不同方式分为两大类:字节流和字符流。每个类别又分为输入流和输出流。以下是Java中常用的I/O流及其继承关系:

字节流(Byte Streams)

输入流(Input Streams)
  1. InputStream(抽象类):所有字节输入流的父类

    • FileInputStream:用于从文件读取字节数据
    • ByteArrayInputStream:从字节数组读取数据
    • FilterInputStream(抽象类):所有过滤输入流的父类
      • BufferedInputStream:提供缓冲功能,减少读取磁盘的次数
      • DataInputStream:读取基本数据类型的输入流
      • ObjectInputStream:读取对象的输入流
  2. Reader(抽象类,用于字符流的基类):所有字符输入流的父类

    • FileReader:从文件读取字符数据
    • CharArrayReader:从字符数组读取数据
    • StringReader:从字符串读取数据
    • FilterReader(抽象类):所有过滤字符输入流的父类
      • BufferedReader:提供缓冲功能,减少读取磁盘的次数
      • LineNumberReader:读取行号的输入流
      • PushbackReader:可以推回字符的输入流
输出流(Output Streams)
  1. OutputStream(抽象类):所有字节输出流的父类

    • FileOutputStream:用于向文件写入字节数据
    • ByteArrayOutputStream:向字节数组写入数据
    • FilterOutputStream(抽象类):所有过滤输出流的父类
      • BufferedOutputStream:提供缓冲功能,减少写入磁盘的次数
      • DataOutputStream:写入基本数据类型的输出流
      • ObjectOutputStream:写入对象的输出流
  2. Writer(抽象类,用于字符流的基类):所有字符输出流的父类

    • FileWriter:向文件写入字符数据
    • CharArrayWriter:向字符数组写入数据
    • StringWriter:向字符串写入数据
    • FilterWriter(抽象类):所有过滤字符输出流的父类
      • BufferedWriter:提供缓冲功能,减少写入磁盘的次数
      • PrintWriter:提供打印功能,可以方便地打印各种数据类型的文本表示

Java中的IO流_第2张图片

Java中的IO流_第3张图片

Java中的IO流_第4张图片
Java中的IO流_第5张图片

Java中的IO流_第6张图片

初始化和使用

对于输入流和输出流,通常需要使用try-with-resources语句,以确保资源被正确关闭。以下是一些简单的初始化和使用示例:

字节流的使用
// 字节输入流
try (InputStream inputStream = new FileInputStream("example.txt")) {
    int data;
    while ((data = inputStream.read()) != -1) {
        // 处理字节数据
    }
} catch (IOException e) {
    e.printStackTrace();
}

// 字节输出流
try (OutputStream outputStream = new FileOutputStream("output.txt")) {
    byte[] data = "Hello, World!".getBytes();
    outputStream.write(data);
} catch (IOException e) {
    e.printStackTrace();
}
字符流的使用
// 字符输入流
try (Reader reader = new FileReader("example.txt")) {
    int data;
    while ((data = reader.read()) != -1) {
        // 处理字符数据
    }
} catch (IOException e) {
    e.printStackTrace();
}

// 字符输出流
try (Writer writer = new FileWriter("output.txt")) {
    String data = "Hello, World!";
    writer.write(data);
} catch (IOException e) {
    e.printStackTrace();
}
如果想要更详细的介绍,请跳转到本人的另一个博客:黑马程序员Java零基础视频教程_下部(P52-P134)https://blog.csdn.net/weixin_46225503/article/details/130302411

你可能感兴趣的:(#,Java的零星知识,java,python,开发语言)