java - 无法找出Java中此RandomAccessFile代码的错误

标签 java

我正在学习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/

相关文章:

java - 我的代码中出现空指针异常

java - 语法错误,插入 "EnumBody"以完成 EnumDeclaration

Java FXML - 显示文本输入字段的字符串长度

Java 相当于 ASP.NET global.Asax

java - 条目名称 'javax/annotation/CheckReturnValue.java' 碰撞生成调试 apk

java - JMS 架构问题?

java - 从网站获取文本并将其放入一行?

java - 如何仅从unix时间戳获取月份和年份

java - 我有一个 jtable 异常,我不明白

java - Camel仅在启动时发送消息,然后停止