RandomAccessFile(バイナリ形式で表現された短文で構成されています)から1番目の番号と5番目の番号から印刷するタスクがあります。私のファイルには、次のようになります。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が短い配列であると仮定して –