1 回答

TA貢獻1820條經驗 獲得超10個贊
我確實在上面問了一個問題,但我假設您想要執行 HexDump,請考慮以下程序:
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
public class HexDump {
public static void main(String[] args) {
try {
InputStream isr = new DataInputStream(new FileInputStream("C:\\Temp\\some_file.dat"));
int bytesPerLine = 16;
int byteCount = 0;
int data;
while ((data = isr.read()) != -1) {
if (byteCount == 0)
System.out.println();
else if (byteCount % bytesPerLine == 0)
System.out.printf("\n", byteCount);
else
System.out.print(" ");
System.out.printf("%02x", data & 0xff);
byteCount += 1;
}
System.out.println();
} catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
它將獲取樣本文件并將各個字節轉儲為十六進制值(每行 16 個字節)。
正如斯蒂芬所提到的,對于二進制文件,實際上并沒有任何類型的編碼方案(您建議的類型 - 例如 ANSI 等)。這種類型的編碼方案適用于文本文件,并告訴您它是 ANSI、UTF-8 還是 UNICODE 等,并告訴您如何閱讀它。話雖如此,二進制文件確實隱含著“編碼方案”。在二進制文件的情況下,正如斯蒂芬提到的,“編碼方案”由文件的寫入內容決定。這實際上也適用于文本文件,程序將確定它是否將文本文件寫入為 ANSI、UTF-8 或任何編碼方案。對于二進制文件,“編碼方案”可能是 JPEG、PNG、GIF、MP3 或 MP4、ZIP 或 TAR 或數千種其他可能性中的任何一種。同樣,這是由編寫文件的程序決定的(例如
我希望這可以幫助您找到答案。
添加回答
舉報