Java编写一个带缓存的对文本文件进行读写操作的程序。可以读取不同位置的信息,可以把数据写入到不同的位置。
时间: 2024-02-03 09:12:32 浏览: 131
下面是一个简单的Java程序,可以实现带缓存的文本文件读写操作。该程序使用了BufferedReader和BufferedWriter类来实现缓存功能,可以读取和写入文本文件的不同位置。
```java
import java.io.*;
public class FileReadWriteWithCache {
private static final int BUFFER_SIZE = 1024;
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
try {
// 读入文件
BufferedReader reader = new BufferedReader(new FileReader(inputFile), BUFFER_SIZE);
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
// 修改文件内容
String content = sb.toString();
content = content.replaceAll("Hello", "Hi");
// 写出文件
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile), BUFFER_SIZE);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先定义了一个BUFFER_SIZE常量,用于指定缓存大小。然后我们使用BufferedReader和BufferedWriter类来实现缓存功能,构造方法中传入了文件读写的流和缓存大小。
在文件读取的过程中,我们使用StringBuilder来保存读取的内容,最后将其转换为字符串并进行修改。修改完成后,我们使用BufferedWriter将修改后的内容写入到输出文件中。
需要注意的是,在使用BufferedReader和BufferedWriter时,我们需要手动调用close()方法来关闭文件流,释放资源。同时,我们也需要处理可能出现的IOException异常。
该程序可以读取和写入文本文件的不同位置,只需要在构造BufferedReader和BufferedWriter对象时传入适当的参数即可。例如,如果要读取文件中的第10行,可以使用以下代码:
```java
BufferedReader reader = new BufferedReader(new FileReader(inputFile), BUFFER_SIZE);
for (int i = 0; i < 9; i++) {
reader.readLine(); // 跳过前9行
}
String line10 = reader.readLine(); // 读取第10行
reader.close();
```
如果要在文件的末尾添加新的内容,可以使用以下代码:
```java
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile, true), BUFFER_SIZE);
writer.write("New content");
writer.close();
```
阅读全文