从文件中读取ascii字符和整数(java)

时间:2013-03-13 19:03:09

标签: java int ascii

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

我尝试使用DataInputStream但它不起作用。我也检查了RandomAccessFile,但它读取的是UTF8。当我尝试读取两个字节并将它们转换为char时,Scanner抛出一个InputMismatchException。

唯一的选择是手动完成吗?

提前致谢

2 个答案:

答案 0 :(得分:3)

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

  

read()从此文件中读取一个字节的数据。该字节作为一个返回   整数,范围为0到255(0x00-0x0ff)。如果没有,此方法会阻止   输入仍然可用。

示例:

int asciiValue randomAccessFile.read();

然后您可以将ìnt投射到char

char character = (char) asciiValue;

答案 1 :(得分:0)

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