IO流及常见操作代码示例、字节流和字符流区别

        IO流(输入输出流)是用于处理输入和输出操作的一种机制。它提供了读取和写入数据的方式,可以从文件、网络连接、内存等不同来源读取数据,并将数据写入文件、网络连接、内存等不同目标。

Java的IO流主要分为两种类型:字节流(Byte Stream)和字符流(Character Stream)

字节流和字符流区别

        数据类型:

                字节流以字节(byte)为单位进行读写操作。

                字符流以字符(char)为单位进行读写操作。

        底层处理:

                字节流直接操作二进制数据,可以处理所有类型的数据。

                字符流在底层会使用字节流,但提供了字符集编解码的功能,能够更方便地处理字符数据。

        适用内容:

                字节流适用于处理二进制数据,例如图像、音频、视频等。

                字符流适用于处理文本数据,例如文本文件、配置文件等。

        处理效率:

                字节流在处理数据时较为直接,处理效率较高。

                字符流在处理数据时会进行字符集编解码操作,可能会略微降低处理效率。

        使用场景:

                字节流适合处理二进制数据和字节流式的操作,如文件复制、网络传输等。

                字符流适合处理文本数据和字符流式的操作,如读取文本文件、写入字符数据等。

        在选择字节流还是字符流时,应根据处理的数据类型和需求进行选择。如果处理的是二进制数据,或者需要进行底层的字节操作,可以选择字节流。如果处理的是文本数据,或者需要进行字符集编解码操作,可以选择字符流。

IO常见操作代码示例

使用字节流读取文件内容并输出到控制台:

import java.io.FileInputStream;
import java.io.IOException;

public class ByteStreamExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("input.txt")) {
            int data;
            while ((data = fis.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用字符流读取文件内容并输出到控制台

import java.io.FileReader;
import java.io.IOException;

public class CharacterStreamExample {
    public static void main(String[] args) {
        try (FileReader reader = new FileReader("input.txt")) {
            int data;
            while ((data = reader.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用字符流写入数据到文件

import java.io.FileWriter;
import java.io.IOException;

public class CharacterStreamWriteExample {
    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("output.txt")) {
            String data = "Hello, World!";
            writer.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java)