2014-01-07 79 views
0

我使用class 6 randomAccessFile中的java 6方法readByte()讀取linux x64上的文本文件。在x32或x64上使用java randomAccessFile讀取相同的行爲?

我通過在年底發現

"0xD" or "0xA" 

尋找文本行的末尾。

我的問題是:如果操作系統將切換到x32,發現仍然工作?

也許更能找到文本行的結束字符,如

"\n" 

,而不是字節?

+0

在x86或x64上的Java中* everything *的相同行爲,JNI庫除外。 – EJP

回答

0

無論您使用64位JVM還是32位JVM,文件的內容都不會更改,因此您正在尋找相同的內容。 RandomAccessFile專爲二進制文件而設計,因此您只能讀取字節,而不能讀取字符。你必須做從字節到字符的翻譯。

簡而言之,無論在哪種情況下都讀取相同的字節,並且談論字符只是關於如何將它們視爲字符,只有字節纔有意義。

+0

感謝您的快速回答,問題是如果在x32上的字節大小與x64相同?所以當JVM發生變化時,我可以安全地在行尾找到「0xD」和「0xA」?並且我的代碼根據需要工作 – Toren

+1

@Toren一個字節在機器級別上始終是一個字節。即使不是,Java定義了一個字節始終是一個有符號的8位值。例如即使在64位JVM上,「int」也始終是32位的。 –