java文件的随机读写
时间: 2023-12-14 11:37:08 浏览: 76
Java提供了多种随机读写文件的方式。下面是其中两种常见的方法:
1. 使用RandomAccessFile类
RandomAccessFile类提供了随机访问文件的方法,可以读取或写入文件的任意位置。
```java
import java.io.*;
public class RandomAccessFileExample {
public static void main(String[] args) {
try {
// 创建一个随机访问文件对象
RandomAccessFile file = new RandomAccessFile("test.txt", "rw");
// 写入数据
file.write("Hello World!".getBytes());
// 读取数据
byte[] buffer = new byte[1024];
file.seek(0); // 将文件指针移到文件开头
int length = file.read(buffer);
System.out.println(new String(buffer, 0, length));
// 关闭文件
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 使用MappedByteBuffer类
MappedByteBuffer类是Java NIO中的一个类,可以将文件映射到内存中,以便快速读写文件。
```java
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class MappedByteBufferExample {
public static void main(String[] args) {
try {
// 创建一个文件通道对象
FileChannel channel = new RandomAccessFile("test.txt", "rw").getChannel();
// 将文件映射到内存中
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, channel.size());
// 写入数据
buffer.put("Hello World!".getBytes());
// 读取数据
buffer.flip(); // 切换为读模式
byte[] bytes = new byte[buffer.limit()];
buffer.get(bytes);
System.out.println(new String(bytes));
// 关闭文件通道
channel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上是两种常用的随机读写文件的方法,具体使用哪种方法取决于应用场景和个人偏好。
阅读全文