2014-09-22 43 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」));

相關問題