如何让Java程序读取所需的文本文件?
我对Java和一般的编码都是新手,我就是不能理解我在这里搞砸的东西。我正在使用Eclipse,我试图让它从一个简单的文本文件中读取,该文件中有两个数字“540.0”,就是这样写的。我把文本文件“ClimateData”保存在src文件夹中这个java文件的旁边,它仍然不会运行程序。我不知道我做错了什么如何让Java程序读取所需的文本文件?,java,eclipse,Java,Eclipse,我对Java和一般的编码都是新手,我就是不能理解我在这里搞砸的东西。我正在使用Eclipse,我试图让它从一个简单的文本文件中读取,该文件中有两个数字“540.0”,就是这样写的。我把文本文件“ClimateData”保存在src文件夹中这个java文件的旁边,它仍然不会运行程序。我不知道我做错了什么 import java.util.Scanner; import java.io.*; public class ClimateSummary { public static void main
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();
}
}
import java.util.Scanner;
导入java.io.*;
公共类气候摘要
{
公共静态void main(字符串[]args)引发FileNotFoundException
{
扫描仪文本文件=新扫描仪(新文件(“气候数据”));
int inputTemperature=textFile.nextInt();
double InputPerception=textFile.nextDouble();
如果(输入温度>90){
System.out.print(“这是一个非常热的人,”);
}否则如果(输入温度<90和输入温度>80){
System.out.print(“有点热,”);
}否则如果(输入温度<80和输入温度>60){
System.out.print(“输出效果非常好,”);
}否则如果(输入温度<60和输入温度>32){
System.out.print(“外面有点冷,”);
}否则如果(输入温度<32){
系统输出打印(“这是悲惨的c-c-co-cold兄弟,”);
}
如果(输入感知>.1){
System.out.print(“而且有点下雨。”);
}否则,如果(InputPerception尝试此操作,查看Java在哪里查找您的文件:
System.out.println(new File("ClimateData").getAbsolutePath());
然后将文件移动到Java正在查找的任何位置
或者,您可以使用getResource()命令方法来查找与类文件相关的文件。有关此方法的详细信息,请参见此处:将其从src
文件夹中移出并放入项目根目录,因为这是任何启动的默认currend direcotry。您必须检查您的路径,请记住,在java中,如果您在windows中,您可以这样编写路径:
C:\\my folder\\mydocument.myextension
您正在获取文件未找到错误,因为该文件位于src文件夹中,您必须将“src/”放在路径前面。此外,您还必须将文件扩展名放在路径后面,使其看起来像“src/ClimateData.txt”。这应该可以解决它。Scanner textFile=new Scanner(新文件(“ClimateData”)
您的线路更正如下:
指定源文件夹的文件路径
Scanner textFile=new Scanner(新文件(“src/ClimateData”);您的文件存储在哪里?它应该直接存储在您的项目下(根据您的代码)。在那里吗?您必须将文件放在类路径目录中。请尝试将其放在工作区的顶部文件中。很抱歉,我应该首先将其放在这里。@brso05我现在就放上去了。@PM77-1很抱歉,您错了。这仍然会打印出它正在查看的绝对路径,即使位置不是有效文件。这将向OP显示Java正在查找相对文件的位置,他可以将其移动到那里。其他人都告诉他只需将其移动到顶层,这可能是正确的,但这个答案让他自己知道了这一点,并且更健壮,在Java.util.Scanner.throwFor的线程“main”Java.util.InputMismatchException中的imho.Exception位于java.util.Scanner.next(未知源)的java.util.Scanner.nextInt(未知源)的java.util.Scanner.nextInt(未知源)位于ClimateSummary.main(ClimateSummary.java:13)的java.util.Scanner.nextInt(未知源)@AirCode我的行需要在任何抛出错误的行之前运行。该错误与我发布的代码无关,这意味着无论您将文件移动到何处,现在都是正确的,但您的分析不正确。@KevinWorkman好的,谢谢,我也会尝试一下。我很笨,甚至没有注意到它是打印语句。我明白了ally,非常感谢!它向我显示了路径,我把它移到了那里。我还把“ClimateData”改成了“ClimateData.txt”。谢谢,我把文件移了出来,把“ClimateData”改成了“ClimateData.txt”它成功了!是的,我必须移动文本文件并将扩展名类型添加到代码中才能使其正常工作。谢谢你的帮助!我最终只是将文本文件从src文件夹中移出。但是我看到你有.txt扩展名,所以我试了试,终于成功了!非常感谢你!
C:\\my folder\\mydocument.myextension