readLong()返回错误的值

时间:2017-06-22 03:49:53

标签: java io datainputstream

我使用名为“ readLong()”的“ DataInputStream ”功能从“.txt”读取文件末尾的值。此文件已提前编辑。我想得到正确的值“123456789”,但答案是“3544952156018063160”

DataInputStream di = new DataInputStream(new FileInputStream("E:\\CMHI\\LocalHost\\src\\t.txt"));
Long res = di.readLong();
System.out.println(res);
di.close();

1 个答案:

答案 0 :(得分:2)

来自JavaDoc for DataInputStream

  

退货:

     

此输入流的后八个字节,解释为long。

这不是你想要的,因为这是一个文本文件,而不是二进制文件。我建议使用Scanner来读取此文件。它有一个nextLong方法,可以完全满足您的需求。

Scanner sc = new Scanner(new File("whatever.txt"));
System.out.println(sc.nextLong());