Java 文本流
在Java中,文本流是处理文本数据的一种方式。文本流允许我们以字符的形式读取和写入数据,而不是以字节的形式。
文本流的分类
在Java中,文本流主要分为Reader
和Writer
两种类型。Reader
用于读取字符数据,Writer
用于写入字符数据。
Reader
和Writer
都是抽象类,它们提供了一系列的方法来读取和写入字符数据。我们可以使用这些方法来处理文本文件、网络数据和其他字符数据。
Reader 类
Reader
类是所有读取字符数据的抽象基类。它定义了一些常用的方法,如read()
用于读取字符,close()
用于关闭流等。
FileReader
FileReader
是Reader
类的一个具体实现,它可以用来读取文件中的字符数据。我们可以通过传递文件路径来创建一个FileReader
对象。
示例代码:
import java.io.FileReader;
import java.io.IOException;
public class FileReaderExample {
public static void main(String[] args) {
try (FileReader reader = new FileReader("example.txt")) {
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用FileReader
读取了名为example.txt
的文件中的字符数据。我们使用while
循环来逐个读取字符,直到读取到文件的末尾。
BufferedReader
BufferedReader
是Reader
类的一个装饰器类,它提供了缓冲功能,能够提高读取字符数据的效率。我们可以通过传递一个Reader
对象来创建一个BufferedReader
对象。
示例代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用BufferedReader
读取了文件中的每一行字符数据。我们使用readLine()
方法来读取一行字符,直到读取到文件的末尾。
Writer 类
Writer
类是所有写入字符数据的抽象基类。它定义了一些常用的方法,如write()
用于写入字符,flush()
用于刷新缓冲区等。
FileWriter
FileWriter
是Writer
类的一个具体实现,它可以用来向文件中写入字符数据。我们可以通过传递文件路径来创建一个FileWriter
对象。
示例代码:
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExample {
public static void main(String[] args) {
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用FileWriter
向名为example.txt
的文件中写入了字符数据"Hello, World!"。
BufferedWriter
BufferedWriter
是Writer
类的一个装饰器类,它提供了缓冲功能,能够提高写入字符数据的效率。我们可以通过传递一个Writer
对象来创建一个BufferedWriter
对象。
示例代码:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用BufferedWriter
向文件中写入了字符数据"Hello, World!"。BufferedWriter
会将数据先写入到缓冲区,当缓冲区满了或者我们调用了flush()
方法时,数据才会被写入到文件中。
总结
文本流是Java中处理文本数据的一种方式,它可以让我们以字符的形式读取和写入数据。在