![](/img/trans.png)
[英]Java - DataOutputStream writeLong\Byte\Double\Int Speed
[英]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.