Java 字节流和字符流是什么?怎么用?
Java IO提供了两种流:字节流(byte stream)和字符流(character stream)。字节流用于处理二进制数据,而字符流则用于处理文本数据。
Java字节流用InputStream(输入)和OutputStream(输出)类来实现。InputStream类和OutputStream类是所有字节输入输出流的基类,它们提供了纯抽象接口,用于读取字节和写入字节。通过InputSteam和OutputStream类,可以完成对文件、网络、屏幕等数据源的读取和写入。
Java字符流用Reader(输入)和Writer(输出)类来实现。和字节流一样,Reader和Writer类也是所有字符输入输出流的基类。这些类定义了一组操作字符数据的方法,而且大多数方法都是面向文本的。字符输入输出流可以使用Reader和Writer类,完成对文本文件、网络数据或其他字符集输出流的读取和写入。
下面是Java字节流和字符流的基本使用示例:
import java.io.*;
public class Example {
public static void main(String[] args) throws IOException {
// 字节流示例
InputStream inputStream = new FileInputStream("test.txt");
OutputStream outputStream = new FileOutputStream("output.txt");
try {
int data;
while ((data = inputStream.read()) != -1) {
outputStream.write(data);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
// 字符流示例
Reader reader = new FileReader("test.txt");
Writer writer = new FileWriter("output.txt");
try {
int data;
while ((data = reader.read()) != -1) {
writer.write(data);
}
} finally {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
}
}
}
这里的代码示例演示了如何使用Java字节流和字符流,首先创建一个输入流和输出流(字节流或字符流),然后使用while循环读取字节或字符数据