我有一個任務,從RandomAccessFile(包含以二進制格式表示的短褲)打印第一個位置的數字和第五個位置的數字。我的文件是這樣的:在Java中從RandomAccessFile打印短號碼
0011
1100
0001
1000
1110
1010
0101
1111
,代碼:
RandomAccessFile file = new RandomAccessFile("data.txt", "r");
try {
int size = (int)file.length()/2;
short[] arr = new short[size];
int pos = 0;
file.seek(pos);
for (int i = 0; i < size; i++) {
arr[i] = file.readShort();
pos += 2;
file.seek(pos);
}
System.out.println(arr[0] + " " + arr[4]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
對於答案,我得到 「12336 12336」。哪裏有問題。我不熟悉這些流,最近開始對它們進行查看。
你的文件在ascii中,但你正在嘗試閱讀它,因爲它是二進制文件。 –
你是什麼意思?我需要分析每一個值來縮短嗎? –
我可以像這樣使用smth:'arr [i] = Short.parseShort(file.readLine(),2);'假設該文件是我的randomaccessfile,而arr是短陣列 –