📜  Java中的字符流与字节流(1)

📅  最后修改于: 2023-12-03 14:42:56.966000             🧑  作者: Mango

Java中的字符流与字节流

在Java中,I/O操作通常分为字节流和字符流。其中字节流操作以字节为单位进行读/写,而字符流操作以字符为单位进行读/写。

字节流

字节流类通常以InputStream和OutputStream为基础。InputStream类提供了一系列方法,用于从输入流读取字节数据,而OutputStream类则提供了一系列方法,用于将字节数据写入输出流。

InputStream in = null;
try {
    in = new FileInputStream("filename.txt");
    int data = in.read();
    while(data != -1){
        // 对读取到的字节进行处理
        data = in.read();
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    in.close();
}
字符流

字符流类通常以Reader和Writer为基础。Reader类提供了一系列方法,用于从输入流读取字符数据,而Writer类则提供了一系列方法,用于将字符数据写入输出流。

Reader reader = null;
try {
    reader = new FileReader("filename.txt");
    int data = reader.read();
    while(data != -1){
        char ch = (char) data;
        // 对读取到的字符进行处理
        data = reader.read();
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    reader.close();
}

字符流可以直接读写字符串,更方便操作数据。

Writer writer = null;
try {
    writer = new FileWriter("filename.txt");
    String str = "Hello World!";
    writer.write(str);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    writer.close();
}

Reader reader = null;
try {
    reader = new FileReader("filename.txt");
    char[] buffer = new char[128];
    int length = reader.read(buffer);
    String str = new String(buffer, 0, length);
    // 处理读取到的字符串
} catch (IOException e) {
    e.printStackTrace();
} finally {
    reader.close();
}

在操作文本文件时,使用字符流类可以更轻松地进行读写操作。