gpt4 book ai didi

java - 使用 RandomAccessFile Java 读取数字文件

转载 作者:行者123 更新时间:2023-12-02 00:09:19 24 4
gpt4 key购买 nike

我的任务是使用 PrintStream 在文本文件中写入一些数字,然后使用 RandomAccessFile 从同一文件中读取。虽然编写部分按预期工作,但运行代码时我得到以下输出。

 807416096
840971040
874525984
Exception in thread "main" java.io.EOFException
908080928
941635872
at java.io.RandomAccessFile.readInt(RandomAccessFile.java:776)
at Problema4.main(Problema4.java:21)
Java Result: 1

这是代码:

import java.io.*;
import java.util.*;

public class Problema4 {

public static void main(String[] args) throws IOException, FileNotFoundException
{
PrintStream ps = new PrintStream(new FileOutputStream("fisiernou.txt"));
int i=0;
while (i<11)
{
ps.print(i);
ps.print(" ");
i++;
}
ps.close();
RandomAccessFile raf = new RandomAccessFile("fisiernou.txt", "r");
raf.seek(0);
//System.out.println(raf.readInt());
while (raf.getFilePointer()<raf.length())
System.out.println(raf.readInt());
raf.close();
}

}

最佳答案

您正在将整数写为字符串( ps.print(i) )。如果你写1,在文件中你写的是1的ascii字符。假设这是我们写的唯一数字,那么文件只有一个字节。

阅读时,您使用的是 raf.readInt()。此方法读取 4 个字节并将它们转换为整数。如果现在您尝试读取文件,则该文件仅包含一个字节(ascii 字符 1),然后您会收到 EOF 异常。

使用相同类型的书写和阅读方法。您可以使用 FileOutputStream.write(int) 进行写入。

关于java - 使用 RandomAccessFile Java 读取数字文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com