【问题标题】:Reading error from the file in java从java中的文件读取错误
【发布时间】:2012-10-19 14:48:16
【问题描述】:

我编写了以下程序,从文本 фалйа 中读取计算机数量,其中包含一个质数

import java.io.*;

public class ReadFromFile {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        int CountComputers=0;
        try {
        DataInputStream ConfigFile = new DataInputStream( new 
         FileInputStream("D:\\HadoopFolder\\ReadFromFile\\src\\countcomputers.txt"));
        CountComputers=ConfigFile.readInt();
        ConfigFile.close(); 
        } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
        //CountComputers=ConfigFile.readInt();
        System.out.println("Количество компьютеров равно "+CountComputers);
    }

}

结果我收到以下错误

Exception in thread "main" java.io.EOFException
    at java.io.DataInputStream.readInt(Unknown Source)
    at ReadFromFile.main(ReadFromFile.java:16)

我是否也有问题肯定有必要在 try...expect 中结束从文件中读取(在一个项目中强调红色,而在另一个项目中也强调了 java(它是其他类型的)否)。我是Java初学者,因此请求理解。

【问题讨论】:

  • countcomputers.txt 的内容是什么。我试图复制你的代码。它运行良好。但我不确定你对它有什么期望。
  • @BhanuKaushik ,数字 4 写在文本文件中。

标签: java eclipse file jakarta-ee compiler-errors


【解决方案1】:

java.io.EOFException - 此异常主要由数据输入流用来表示流结束。请注意,许多其他输入操作在流结束时返回一个特殊值,而不是引发异常。

我相信您正在阅读的文件中不存在 int 尝试这个 CountComputers=Integer.valueOf(ConfigFile.readLine());

【讨论】:

    【解决方案2】:

    我没有发现您的代码有任何问题(只要您的输入文件包含数据)。无论如何,Java 都有很好的 AP (java.util.Scanner) 从文件中读取数据(从 JDK1.5 开始)。

    Scanner scanner = new Scanner(new File("countcomputers.txt"));
    if(scanner.hasNext()){
        data= scanner.nextInt();
    }
    else{
            System.out.println(" No Data found");
    }
    

    这个逻辑也处理EOFException

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 2020-04-10
      相关资源
      最近更新 更多