用RandomAccessFile写到文件的东西看不懂
时间: 2023-08-02 11:13:29 浏览: 110
RandomAccessFile 是 Java 中用于读写文件的类,它可以随机访问文件中的任何位置,而不是像其他输入输出流一样只能顺序读写。在使用 RandomAccessFile 时,需要指定文件的访问模式(读、写或读写)、文件的打开方式(只读或可读可写)以及文件指针当前的位置。文件指针表示当前读写位置,可以通过 seek() 方法来移动文件指针的位置。
当使用 RandomAccessFile 写入数据时,需要先将数据转换为字节数组,然后通过 write() 方法写入文件中。例如:
```
RandomAccessFile file = new RandomAccessFile("data.txt", "rw");
file.write("Hello World".getBytes());
file.close();
```
这段代码将字符串 "Hello World" 写入了文件 data.txt 中。
如果你看不懂写入文件的内容,可能是因为它是以字节的形式存储在文件中的,而不是以普通文本的方式存储。你可以使用文本编辑器或者十六进制编辑器来查看文件的内容。
相关问题
java RandomAccessFile用ByteBuffer读写文件
你可以使用`RandomAccessFile`和`ByteBuffer`来实现文件的读写操作。下面是一个示例代码:
```java
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileReadWriteExample {
public static void main(String[] args) {
try {
// 打开一个 RandomAccessFile 对象,以读写模式打开文件
RandomAccessFile file = new RandomAccessFile("example.txt", "rw");
FileChannel channel = file.getChannel();
// 创建一个 ByteBuffer,设置容量为 1024 字节
ByteBuffer buffer = ByteBuffer.allocate(1024);
// 从文件中读取数据到 ByteBuffer
int bytesRead = channel.read(buffer);
while (bytesRead != -1) {
buffer.flip(); // 切换为读模式
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get()); // 读取字节并输出
}
buffer.clear(); // 清空 ByteBuffer
bytesRead = channel.read(buffer); // 继续从文件中读取数据
}
// 向文件中写入数据
String data = "Hello, World!";
buffer.clear();
buffer.put(data.getBytes());
buffer.flip(); // 切换为写模式
channel.write(buffer);
// 关闭文件流
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,首先创建了一个`RandomAccessFile`对象,并通过`getChannel()`方法获取了`FileChannel`对象。然后,创建了一个`ByteBuffer`对象,并设置了容量为1024字节。接下来,使用`channel.read(buffer)`方法从文件中读取数据到`ByteBuffer`,并通过`buffer.flip()`方法切换为读模式。然后,使用`buffer.get()`方法逐个读取字节并输出。当`buffer`中没有剩余字节时,使用`buffer.clear()`方法清空`ByteBuffer`。重复执行以上步骤,直到读取到文件末尾。最后,使用`buffer.put(data.getBytes())`方法将数据写入`ByteBuffer`,并通过`buffer.flip()`方法切换为写模式。最后,使用`channel.write(buffer)`方法将数据写入文件中。最后,记得关闭文件流。
RandomAccessFile 读取多行文件
可以使用 RandomAccessFile 类的 readLine() 方法读取多行文件。该方法每次读取一行,直到读取到文件的末尾。以下是一个示例代码:
```
try {
RandomAccessFile file = new RandomAccessFile("file.txt", "r");
String line;
while ((line = file.readLine()) != null) {
System.out.println(line);
}
file.close();
} catch (IOException e) {
e.printStackTrace();
}
```
在上面的代码中,我们首先创建一个 RandomAccessFile 对象,指定了文件名和打开模式为只读模式。然后我们使用 while 循环读取文件中的每一行,直到读取到文件的末尾。每次读取一行使用 readLine() 方法,并将其存储在一个字符串变量中,如果读取到的行不为空,则打印该行。最后关闭文件。
阅读全文