我已经查看了此处发布的有关此问题的问题,但没有一个解决方案有所帮助。我找到了此页面的链接http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner%28java.io.File%29
另外,没有帮助。我查看了我的教科书,甚至直接从书中复制了一个类似的代码,并再次给出了File Not Found Exception。 input.txt文件与程序文件位于同一文件夹中,我尝试使用特定路径,也将此行添加到代码System.out.println(新文件(“C:/input.txt”))。 getAbsolutePath());
它也没有帮助。我觉得我现在有更多问题而不是答案。文件的名称是正确的,大小写是正确的。我确实发现.txt文件正在Word中保存,所以我去那里并将格式更改为plain 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));
}
}
答案 0 :(得分:0)
你需要逃避斜杠:“C://input.txt”。
答案 1 :(得分:0)
“input.txt文件与程序文件位于同一文件夹中”:这意味着您只需要“input.txt”
要准确查看保存名称的文件,您可以转到命令窗口并在您要查找的位置键入dir。
或者,您可以在程序中执行此操作:
File f=new File(".");
String[] fs=f.list();
for(String s:fs) System.out.println(s);
如果您的文件没有打印,那么它就在其他地方。
答案 2 :(得分:0)
在文件路径更改" /"到File.separator
例如:
File fileObject = new File("C:" + File.separator + "input.txt");
答案 3 :(得分:0)
您的代码看起来很好,并且在我的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”作为文件名。
答案 4 :(得分:0)
C:/input.txt
告诉文件系统在硬盘驱动器的根目录中查找名为input.txt的文件,假设C:/
等同于C:\
。
这是您在根目录中运行程序的位置。如果没有,并且根管理器中没有名为input.txt的文件,程序将无法按预期工作。
尝试更改BlackCode所描述的代码,和/或删除C:/
在命令窗口中键入pwd
将告诉您直接在哪里,如果它不是您的硬盘驱动器的根,程序找不到您要告诉它的文件。
答案 5 :(得分:-1)
使用此:
扫描仪fileIn =新扫描仪(“C:/input.txt”);