编写一个带缓存的对文本文件进行读写操作的java程序。 (1)可以读取不同位置的信息 (2)可以把数据写入到不同的位置
时间: 2023-12-03 16:42:39 浏览: 67
带缓存的读写器-java语言程序设计(安徽大学)
下面是一个基本的带缓存的对文本文件进行读写操作的 Java 程序:
```java
import java.io.*;
public class FileReadWrite {
private static final int BUFFER_SIZE = 1024;
private byte[] buffer;
private FileInputStream inputStream;
private FileOutputStream outputStream;
private int position;
public FileReadWrite(String fileName) throws IOException {
buffer = new byte[BUFFER_SIZE];
inputStream = new FileInputStream(fileName);
outputStream = new FileOutputStream(fileName);
position = 0;
}
public String read(int length) throws IOException {
String result = "";
int bytesRead = 0;
if (position + length <= BUFFER_SIZE) {
bytesRead = inputStream.read(buffer, position, length);
if (bytesRead > 0) {
result = new String(buffer, position, bytesRead);
position += bytesRead;
}
} else {
bytesRead = inputStream.read(buffer, position, BUFFER_SIZE - position);
if (bytesRead > 0) {
result = new String(buffer, position, bytesRead);
position += bytesRead;
}
}
return result;
}
public void write(int position, String data) throws IOException {
byte[] bytes = data.getBytes();
outputStream.write(bytes, position, bytes.length);
}
public void close() throws IOException {
inputStream.close();
outputStream.close();
}
}
```
这个程序有以下几个方法:
- `FileReadWrite(String fileName)`:构造函数,创建一个新的文件输入输出流。
- `read(int length)`:从文件中读取指定长度的数据,并返回它们的字符串表示形式。
- `write(int position, String data)`:将指定的数据写入文件的指定位置。
- `close()`:关闭文件输入输出流。
在使用这个程序时,首先需要创建一个 `FileReadWrite` 对象,然后可以通过调用 `read` 和 `write` 方法来读取和写入文件。例如:
```java
public static void main(String[] args) throws IOException {
FileReadWrite file = new FileReadWrite("test.txt");
String data = file.read(10);
System.out.println(data);
file.write(5, "Hello");
file.close();
}
```
以上代码将会从文件的当前位置读取 10 个字节的数据,并将它们打印到控制台上。然后,它将会在文件的第 5 个字节处写入字符串 “Hello”。最后,它将关闭文件输入输出流。
阅读全文