簡體   English   中英

Java.Random.IO中的ReadLong和WriteLong方法

[英]ReadLong and WriteLong methods in Java.Random.IO

我試圖使用Java命令針對隨機文件IO編寫Long,如下所示:

fstreamOut = new FileOutputStream(new File("C:\\Basmah","dataOutput.7"),true);
DataOutputStream out=new DataOutputStream(fstreamOut);
Long p= Long.parseLong(longNumberInString );  // Number of digits for this long key are 7-15
              out.writeLong(p);                  

問題是當我使用writeLong輸入7-15位數字時; 它在文件中寫入8個字節。 然后我試圖將相同的記錄讀入我的程序並將其解碼

Long l=in.readLong();

但是我得不到我寫的相同的數字; 相反,我得到EOF異常。

長id 64位長。 這使8個字節。 DataOutputStream的writeLong方法寫入long的二進制表示形式,而不是文本形式的表示形式。 如果不知道用於讀取long值的代碼,就無法說出為什么它不起作用。

您的示例和注釋中給出的代碼應該可以正常工作。 它並不表示此處正在發生其他事情:

  • 也許讀寫是在不同的文件上進行的。
  • 在嘗試讀取文件之前,可能未刷新/關閉正在寫入的文件。
  • 也許還有其他東西正在覆蓋文件。
  • 也許您提供的代碼片段與實際代碼足夠不同,以至於有所作為。

在嘗試讀取文件的代碼中,打印調用f.length()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM