0

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

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的初学者,因此请求理解。

4

2 回答 2

0

我没有发现您的代码有任何问题(只要您的输入文件包含数据)。无论如何,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

于 2012-10-19T15:30:22.473 回答
0

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

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

于 2012-10-19T14:56:18.870 回答