私は、randomAccessFileに10個のintを書き込むメソッドと10個のintを読み取るメソッドの2つのメソッドを持っています。私は作家の方法が意図したとおりに機能していないと信じています。ここでrandomAccessFileメソッドはintを書き込んだり読み込んだりしませんか?
はランダムなファイルへの書き込みに私の方法であり、ここで
try{
RandomAccessFile file = new RandomAccessFile(nextPath, "rw");
System.out.println("Writing these ints to file");
file.seek(0);
// here I loop 10 times and write the int at position i
for (int i = 0; i < 10; i++)
{
file.seek(i);
toAdd = randInt(1,10);
file.writeInt(toAdd);
System.out.printf(toAdd + " ");
}
file.seek(0);
System.out.println("");
}catch(IOException ex){
System.out.println("Error");
System.exit(0);}
はint型を読み込むための私の方法である:ここでは
public int[] readRandom()
{
System.out.println("Unsorted ints found in random file:");
int[] randomInts = new int[10];
try{
RandomAccessFile file = new RandomAccessFile(nextPath, "rw");
file.seek(0);
// here I loop 10 times, and read the Int at position i
for(int i = 0; i < 10; i++)
{
file.seek(i);
randomInts[i] = file.readInt();
System.out.printf(randomInts[i] + " ");
}
file.seek(0);
System.out.println("");
}catch(IOException exc){
System.out.println("Error reading ints");
System.exit(0);}
return randomInts;
}
は私の出力です:なぜ、最後のintが読み取られています?
Writing these ints to file
1 4 5 6 2 4 10 6 5 5
Unsorted ints found in random file:
0 0 0 0 0 0 0 0 0 5
、それを解決しました。だから、intの代わりにdoubleを書くと、iを8倍しますか? – mark1092
答えははいです。 RandomAccessFileの[仕様](https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html)を確認することができます。 – mesbah