randomaccessfile读取中文
时间: 2023-04-25 07:00:07 浏览: 40
RandomAccessFile可以读取中文,但需要注意编码问题。如果文件是UTF-8编码,可以使用以下代码读取:
```
RandomAccessFile file = new RandomAccessFile("file.txt", "r");
byte[] bytes = new byte[(int) file.length()];
file.read(bytes);
String content = new String(bytes, "UTF-8");
System.out.println(content);
file.close();
```
如果文件是其他编码,需要将"UTF-8"替换为对应的编码名称。同时,需要注意文件的BOM(Byte Order Mark)问题,如果文件有BOM,需要先将BOM去掉再读取文件内容。
相关问题
randomaccessfile读取文件
RandomAccessFile是Java中的一个类,用于读取和写入文件。它允许程序员在文件中任意访问数据,因此名为“RandomAccess”。
下面是一个简单的例子,说明如何使用RandomAccessFile读取文件:
```
import java.io.IOException;
import java.io.RandomAccessFile;
public class Main {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("example.txt", "r");
byte[] b = new byte[(int)file.length()];
file.read(b);
String s = new String(b);
System.out.println(s);
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们打开了一个名为“example.txt”的文件,并使用“r”模式打开它,这表示我们仅打算读取文件。然后,我们使用read()方法读取文件的内容,并将其存储在字节数组b中。最后,我们将字节数组转换为字符串,并使用println()方法输出该字符串。
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() 方法,并将其存储在一个字符串变量中,如果读取到的行不为空,则打印该行。最后关闭文件。