我正在学习java,目前正在学习流(字节和字符),我编写了这段代码,在.txt中写入一个数组,然后读取并打印之前写入的值。编译时,第 22 行出现错误,显示
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
这是代码:
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
最佳答案
完成文件写入后,您必须将文件指针重置回开头。
..//write code for loop
rand.seek(0)
..//read code for loop
关于java - 无法找出Java中此RandomAccessFile代码的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34280937/