Java 找不到程序文件
Java program file not found
我查看了此处发布的关于此问题的问题,none 的解决方案很有帮助。我在这个页面 http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner%28java.io.File%29
找到了 link
也,没有帮助。我浏览了我的教科书,甚至直接从书中复制了一段类似的代码,但再次出现“未找到文件”异常。 input.txt 文件与程序文件在同一个文件夹中,我尝试使用特定路径,还在代码中添加了这一行 System.out.println(new File("C:/input.txt").getAbsolutePath ());
它也没有帮助。我觉得我现在的问题多于答案。文件名正确,大小写正确。我确实发现 .txt 文件被保存在 Word 中,所以我去了那里并将格式更改为纯 txt 文件。保存为Word文档是否与此问题有关,还是我在那里浪费时间?
这是我的代码:
import java.util.Scanner;
import java.io.*;
import java.text.DecimalFormat;
public class FileRead
{
public static void main(String[] args) throws IOException
{
double count = 0;
double sum = count++;
double average = sum/count;
File fileObject = new File("C:/input.txt");
System.out.println(new File("C:/input.txt").getAbsolutePath());
Scanner fileIn = new Scanner (fileObject);
while (fileIn.hasNext())
{
count = fileIn.nextDouble();
sum = count++;
}
average = sum/count;
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println("The total of the: " + count + "numbers entered are: "
+ sum + " and the average is: " + df.format(average));
}
}
您需要转义斜线:"C://input.txt"。
"The input.txt file is in the same folder as the program file":也就是说你只需要"input.txt"
要查看与保存名称完全相同的文件,您可以转到命令 window 并在您要查找的位置键入 dir。
或者您可以在程序中执行此操作:
File f=new File(".");
String[] fs=f.list();
for(String s:fs) System.out.println(s);
如果您的文件没有打印出来,那么它在其他地方。
在文件路径中将“/”更改为File.separator
示例:
File fileObject = new File("C:" + File.separator + "input.txt");
使用这个:
扫描仪文件输入 = 新扫描仪 ("C:/input.txt");
您的代码看起来不错,在我的 Window 7 上也能正常工作(尽管我必须更改为管理员才能创建 c:\input.txt)
令人困惑的是,即使文件不存在,.getAbsolutePath() 也会给出一个值。
更好的测试如下 - 如果您的文件不存在,它将打印 false。
File fileObject = new File("c:/input.txt");
System.out.println(fileObject.exists());
Scanner fileIn = new Scanner (fileObject);
要确定文件存在,请在命令行尝试此操作
echo 1 2 3 4 > input.txt
然后去掉完整路径,只使用 "input.txt" 作为文件名。
C:/input.txt
告诉文件系统在硬盘驱动器的根目录中查找名为 input.txt 的文件,假设 C:/
等同于 C:\
。
这是你所在的运行根目录下的程序。如果不是,并且根目录中没有名为 input.txt 的文件,程序将无法按预期运行。
尝试按照 BlackCode 的描述更改代码,and/or 删除 C:/
在命令中输入 pwd
window 会告诉你你直接在什么地方,如果它不是你硬盘的根目录,程序也找不到你告诉它的文件寻找。
我查看了此处发布的关于此问题的问题,none 的解决方案很有帮助。我在这个页面 http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner%28java.io.File%29
找到了 link
也,没有帮助。我浏览了我的教科书,甚至直接从书中复制了一段类似的代码,但再次出现“未找到文件”异常。 input.txt 文件与程序文件在同一个文件夹中,我尝试使用特定路径,还在代码中添加了这一行 System.out.println(new File("C:/input.txt").getAbsolutePath ());
它也没有帮助。我觉得我现在的问题多于答案。文件名正确,大小写正确。我确实发现 .txt 文件被保存在 Word 中,所以我去了那里并将格式更改为纯 txt 文件。保存为Word文档是否与此问题有关,还是我在那里浪费时间?
这是我的代码:
import java.util.Scanner;
import java.io.*;
import java.text.DecimalFormat;
public class FileRead
{
public static void main(String[] args) throws IOException
{
double count = 0;
double sum = count++;
double average = sum/count;
File fileObject = new File("C:/input.txt");
System.out.println(new File("C:/input.txt").getAbsolutePath());
Scanner fileIn = new Scanner (fileObject);
while (fileIn.hasNext())
{
count = fileIn.nextDouble();
sum = count++;
}
average = sum/count;
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println("The total of the: " + count + "numbers entered are: "
+ sum + " and the average is: " + df.format(average));
}
}
您需要转义斜线:"C://input.txt"。
"The input.txt file is in the same folder as the program file":也就是说你只需要"input.txt"
要查看与保存名称完全相同的文件,您可以转到命令 window 并在您要查找的位置键入 dir。
或者您可以在程序中执行此操作:
File f=new File(".");
String[] fs=f.list();
for(String s:fs) System.out.println(s);
如果您的文件没有打印出来,那么它在其他地方。
在文件路径中将“/”更改为File.separator
示例:
File fileObject = new File("C:" + File.separator + "input.txt");
使用这个:
扫描仪文件输入 = 新扫描仪 ("C:/input.txt");
您的代码看起来不错,在我的 Window 7 上也能正常工作(尽管我必须更改为管理员才能创建 c:\input.txt) 令人困惑的是,即使文件不存在,.getAbsolutePath() 也会给出一个值。 更好的测试如下 - 如果您的文件不存在,它将打印 false。
File fileObject = new File("c:/input.txt");
System.out.println(fileObject.exists());
Scanner fileIn = new Scanner (fileObject);
要确定文件存在,请在命令行尝试此操作
echo 1 2 3 4 > input.txt
然后去掉完整路径,只使用 "input.txt" 作为文件名。
C:/input.txt
告诉文件系统在硬盘驱动器的根目录中查找名为 input.txt 的文件,假设 C:/
等同于 C:\
。
这是你所在的运行根目录下的程序。如果不是,并且根目录中没有名为 input.txt 的文件,程序将无法按预期运行。
尝试按照 BlackCode 的描述更改代码,and/or 删除 C:/
在命令中输入 pwd
window 会告诉你你直接在什么地方,如果它不是你硬盘的根目录,程序也找不到你告诉它的文件寻找。