RandomAccessFile 如何从头部写入数据 不覆盖
时间: 2024-01-24 21:02:49 浏览: 24
`RandomAccessFile` 可以通过 `seek()` 方法定位文件指针的位置,从而实现从头部写入数据而不覆盖已有数据。
具体实现步骤如下:
1. 创建 `RandomAccessFile` 对象,指定文件名和访问模式(读、写或读写)。
```java
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
```
2. 使用 `seek()` 方法将文件指针移动到文件头部。
```java
raf.seek(0);
```
3. 调用 `write()` 方法写入数据。
```java
raf.write("hello world".getBytes());
```
完整示例代码如下:
```java
import java.io.RandomAccessFile;
public class RandomAccessFileExample {
public static void main(String[] args) throws Exception {
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
raf.seek(0);
raf.write("hello world".getBytes());
raf.close();
}
}
```
注意:如果写入的数据长度超过了文件原有数据的长度,则会在文件末尾追加数据。如果想要保留原有数据并在中间位置插入新数据,需要先将插入位置后面的数据读出来,然后将新数据写入,最后再将原有数据写回文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)