《探究Java IO流:数据的流动之美》

36 阅读2分钟

Java IO 基本概念

image.png

java IO(Input/Output)是Java编程语言中用于处理输入输出的标准库。

Java IO库提供了一系列类和接口,用于读取和写入数据流,以及对文件系统进行操作。

在Java IO中,数据流被抽象为一个流(Stream)的概念,数据从一个流中读取或写入到另一个流中。

Java IO 分类及作用

Java IO流可以分为两类:字节流和字符流

InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

  1. 字节流以字节为单位进行读写,而字符流以字符为单位进行读写。

  2. 字节流主要用于处理二进制数据,如图像、音频、视频等文件。

  3. 而字符流主要用于处理文本数据,如文本文件、配置文件等。

Java IO流还可以分为输入流和输出流。

输入流用于从数据源中读取数据,输出流用于向目标中写入数据。

在Java IO中,输入流和输出流都是抽象类,具体的实现类包括FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream等。

Java IO流支持一些高级特性,如缓冲、过滤器、对象序列化等。缓冲可以提高读写效率,过滤器可以对数据进行处理,对象序列化可以将对象转换为字节流进行传输和存储

文件操作:Java IO读写文件,包括文件的创建、删除、重命名等操作案例

1. 文件的创建

    File file = new File("example.txt");
    try {
        if (file.createNewFile()) {
            System.out.println("File created: " + file.getName());
        } else {
            System.out.println("File already exists.");
        }
    } catch (IOException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }

2. 写入文件

    try {
        FileWriter writer = new FileWriter("example.txt");
        writer.write("Hello World!");
        writer.close();
        System.out.println("Successfully wrote to the file.");
    } catch (IOException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }

3读取文件

    try {
        FileReader reader = new FileReader("example.txt");
        int character;
        while ((character = reader.read()) != -1) {
            System.out.print((char) character);
        }
        reader.close();
    } catch (IOException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }

4.删除文件

    File file = new File("example.txt");
    if (file.delete()) {
        System.out.println("File deleted: " + file.getName());
    } else {
        System.out.println("Failed to delete the file.");
    }

5. 重命名文件

    File file = new File("example.txt");
    File newFile = new File("new_example.txt");
    if (file.renameTo(newFile)) {
        System.out.println("File renamed successfully.");
    } else {
        System.out.println("Failed to rename the file.");
    }