编写一个带缓存的对文本文件进行读写操作的java程序。 (1)可以读取不同位置的信息 (2)可以把数据写入到不同的位置
时间: 2024-02-06 18:10:32 浏览: 62
下面是一个简单的带缓存的对文本文件进行读写操作的 Java 程序示例:
```java
import java.io.*;
public class FileReadWriteWithCache {
private static final int CACHE_SIZE = 1024; // 缓存大小为 1 KB
public static void main(String[] args) {
String filename = "data.txt";
int position = 10; // 从文件第 10 个字符开始读取或写入数据
// 读取文件
String data = readFromFile(filename, position, 20); // 从文件第 10 个字符开始读取 20 个字符
System.out.println("Read from file: " + data);
// 写入文件
writeToFile(filename, position, "Hello World"); // 从文件第 10 个字符处开始写入 "Hello World"
System.out.println("Write to file: Hello World");
}
// 从指定位置读取指定长度的字符串
private static String readFromFile(String filename, int position, int length) {
char[] buffer = new char[length];
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
br.skip(position);
br.read(buffer, 0, length);
} catch (IOException e) {
e.printStackTrace();
}
return new String(buffer);
}
// 从指定位置开始写入字符串
private static void writeToFile(String filename, int position, String data) {
try (RandomAccessFile raf = new RandomAccessFile(filename, "rw")) {
raf.seek(position);
raf.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序使用了 `BufferedReader` 和 `RandomAccessFile` 两个类来实现带缓存的文件读写操作。`BufferedReader` 用于读取文件,可以通过 `skip()` 方法跳过指定数量的字符,然后读取指定长度的字符到缓存中。`RandomAccessFile` 用于写入文件,可以通过 `seek()` 方法定位到指定位置,然后写入指定的数据。
阅读全文