2014-09-22 116 views
0

我是新来的Java和编码一般,我只是无法得到我在这里搞砸了。我正在使用Eclipse,我试图从一个简单的文本文件中读取,其中包含两个数字“54 0.0”。我有一个文本文件“ClimateData”保存在src文件夹中这个java文件的旁边,它仍然不会运行程序。我不知道我做错了如何让我的Java程序读取我想要的文本文件?

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

public class ClimateSummary 
{ 
public static void main (String [] args) throws FileNotFoundException 
{ 

    Scanner textFile = new Scanner (new File("ClimateData")); 

    int inputTemperature = textFile.nextInt(); 
    double inputPercipitation = textFile.nextDouble(); 

    if (inputTemperature > 90) { 
     System.out.print("It's miserably hot out man, "); 

    } else if (inputTemperature < 90 && inputTemperature > 80) { 
     System.out.print("It's kind of hot, "); 

    } else if (inputTemperature < 80 && inputTemperature > 60) { 
     System.out.print("It's pretty nice out, "); 

    } else if (inputTemperature < 60 && inputTemperature > 32) { 
     System.out.print("It's a bit cold out, "); 

    } else if (inputTemperature < 32) { 
     System.out.print("It's miserably c-c-co-cold bro, "); 
    } 

    if (inputPercipitation > .1) { 
     System.out.print("and it's a little rainy."); 

    } else if (inputPercipitation <= .1) { 
     System.out.print("it's not rainy."); 
    } 

    textFile.close(); 

} 
} 

我得到这个错误:

Exception in thread "main" java.io.FileNotFoundException: ClimateData (The system cannot find the file specified) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.util.Scanner.<init>(Unknown Source) 
at ClimateSummary.main(ClimateSummary.java:11) 
+4

你得到什么错误 – brso05 2014-09-22 17:41:57

+1

你的文件存储在哪里?它应该直接存储在您的项目下(根据您的代码)。它在吗? – TheLostMind 2014-09-22 17:41:58

+1

你必须把你的文件放入classpath目录。尝试将其放置在工作区的顶部文件中。 – shinjw 2014-09-22 17:42:20

回答

1

试试这个,看看Java正在寻找你的文件:

System.out.println(new File("ClimateData").getAbsolutePath()); 

然后将文件移动到Java正在查找的位置。

或者,您可以使用getResource()方法查找与您的类文件相关的文件。有关此方法的更多信息,请访问:getResourceAsStream() vs FileInputStream

+2

@ PM77-1对不起,但你错了。即使该位置不是有效文件,这仍将打印出它正在查看的绝对路径。这将显示OP在哪里Java正在寻找相关文件,他可以在那里移动它。每个人都告诉他只是把它移动到最高层,这可能是正确的,但这个答案可以让他为自己弄清楚这个问题,并且更加强大。 – 2014-09-22 17:49:03

+0

我添加建议的一段代码,并得到这样的:在螺纹 – AirCode 2014-09-22 17:55:00

+0

异常“主” java.util.InputMismatchException \t在java.util.Scanner.throwFor(未知来源) \t在java.util.Scanner.next(未知源) \t在java.util.Scanner.nextInt(来源不明) \t在java.util.Scanner.nextInt(来源不明) \t在ClimateSummary.main(ClimateSummary.java:13) – AirCode 2014-09-22 17:55:59

0

将其移出src文件夹并进入项目根目录,因为这是任何启动的默认currend目录。

+0

谢谢你,我把文件移出来,把“ClimateData”改为“ClimateData.txt”,它就起作用了! – AirCode 2014-09-22 18:14:47

0

同比要检查你的路径,并在Java记住,如果你使用Windows,你写这样的路径:

C:\\my folder\\mydocument.myextension 
+0

是的,我必须移动文本文件并将扩展类型添加到代码才能使其正常工作。谢谢您的帮助! – AirCode 2014-09-22 18:16:32

1

你所得到的文件未找到错误,因为该文件是在src你必须在路径前面加上“src /”文件夹。你也必须把文件扩展名放在后面,所以它看起来像这样“src/ClimateData.txt”。这应该解决它。

+0

我最终只是将文本文件移出src文件夹。但是我看到你有.txt扩展名,所以我试过了,它终于奏效了!非常感谢你! – AirCode 2014-09-22 18:19:10

0

Scanner textFile = new Scanner(new File(“ClimateData”));

纠正您的行是: 指定源文件夹的文件路径。

Scanner textFile = new Scanner(new File(“src/ClimateData”));

相关问题