0

我正在做一个项目,我的代码必须尽可能高效,并且我需要从文件中读取 ascii 字符和整数。问题(我认为)是当我读取字符时,它以 UTF8 读取,因为它只读取了它应该读取的一半。

我尝试使用 DataInputStream 但它不起作用。我还检查了 RandomAccessFile,但它以 UTF8 读取。当我尝试读取两个字节并将它们转换为 char 时,扫描程序会抛出 InputMismatchException。

是不是唯一的选择是手工完成?

提前致谢

4

2 回答 2

3

一次读取一个字节。这将是您想要的价值。例如,使用RandomAccessFile read()方法:

read() 从此文件中读取一个字节的数据。该字节以 0 到 255 (0x00-0x0ff) 范围内的整数形式返回。如果还没有输入可用,则此方法会阻塞。

例子:

int asciiValue randomAccessFile.read();

然后你可以投射ìntchar

char character = (char) asciiValue;

于 2013-03-13T19:08:05.113 回答
0

我发现了问题所在。问题是,当您使用 BufferedWriter 写入 char 和 int 时,它会将所有内容都转换为 char,这使得无法直接从文件中将 int 作为类型读取。我将尝试使用 DataOutputStream 编写,使用直接写入整数和字符的方法。

于 2013-03-14T15:32:43.520 回答