在學習java並且正在學習Streams(字節和字符)的時候,我寫了這個代碼,它將一個數組寫入.txt,然後讀取並打印之前寫入的值。編譯當我有錯的,說無法找出Java中的這個RandomAccessFile代碼的錯誤
method readInt in class RandomAccessFile cannot be applied to given types;
d = rand.readInt(4*i);
required: no arguments
foung: int
reason: actual and formal argument lists differ int length
繼承人的代碼行22:
import java.io.*;
class Prueba7
{
public static void main(String args[])
{
int array[] = {2,5,3,6,4,7,4,8};
int d;
try(RandomAccessFile rand = new RandomAccessFile("prueba7.txt", "rw"))
{
for(int i: array)
{
System.out.println("Writing: " +i);
rand.writeInt(i);
}
for(int i = 0; i < array.length; i++)
{
d = rand.readInt(4*i);
System.out.println("Reading file: ");
System.out.print(d);
}
}
catch(IOException exc)
{
System.out.println("Exception: " +exc);
}
}
}
當我讀到的錯誤,試圖刪除的readInt的說法,但我有一個例外,而不是預期的產出。
import java.io.*;
class Prueba7
{
public static void main(String args[])
{
int array[] = {2,5,3,6,4,7,4,8};
int d;
try(RandomAccessFile rand = new RandomAccessFile("prueba7.txt", "rw"))
{
for(int i: array)
{
System.out.println("Writing: " +i);
rand.writeInt(i);
}
for(int i = 0; i < array.length; i++)
{
d = rand.readInt();
System.out.println("Reading file: ");
System.out.print(d);
}
}
catch(IOException exc)
{
System.out.println("Exception: " +exc);
}
}
}
這個我得到這樣的輸出:
writing: 2
writing: 5
writing: 3
writing: 6
writing: 4
writing: 7
writing: 4
writing: 8
Exception: java.io.EOFException
這是輸出我想:
writing: 2
writing: 5
writing: 3
writing: 6
writing: 4
writing: 7
writing: 4
writing: 8
Reading: 2 5 3 6 4 7 4 8
的readInt()絕對不採取ARGS按的Javadoc。我還沒有確認,但@ dkatzel的答案似乎是在正確的道路上。 –