为什么程序会搜索文件:
File FILE_PATH = new File("C:\\Users\\home\\Desktop\\DbWord.txt");
System.out.println(FILE_PATH.exists());
System.out.println(FILE_PATH.getAbsoluteFile());
FileInputStream fIn = new FileInputStream(FILE_PATH);
Scanner reader = new Scanner(fIn);
at:C:\ Users \ home \ Documents \ NetBeansProjects \ MyDatabase \ C:\ Users \ home \ Desktop \ DbWord.txt
我如何抵消默认位置?
如果此帖中的内容不好,请告诉我并且不要投反对票。
谢谢!
为什么负面投票???????????????什么是你的问题???????????
答案 0 :(得分:1)
请仔细检查您的错误详情。您可能已经看到类似下面的错误。实际上程序没有搜索文件"C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt"
,它正在尝试找到您机器中不存在的文件"C:\Users\home\Desktop\DbWord.txt"
。您看到"C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt"
以及错误,因为您已在代码中使用了System.out.println(FILE_PATH.getAbsoluteFile());
语句。
false
Exception in thread "main" java.io.FileNotFoundException: C:\Users\home\Desktop\DbWord.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt
at com.stackoverflow.answer.SimpleFileHelper.main(SimpleFileHelper.java:17)
希望你现在清楚。
有三种主要机会可能会抛出FileNotFoundException
。
根据您的描述,前两个原因不太可能,请使用file.canRead()
方法检查第三点。
如果上面的测试返回true,我会怀疑以下内容:
您可能忘记明确抛出或捕获潜在的异常(即FileNotFoundExcetion
)。如果您在IDE中工作,您应该得到编译器的一些投诉。但我怀疑你没有在这样的IDE中运行你的代码。
尝试以下代码,看看异常是否会消失:
package com.stackoverflow.answer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SimpleFileHelper {
public static void main(String[] args) throws FileNotFoundException {
File FILE_PATH = new File("C:/Users/home/Desktop/DbWord.txt");
System.out.println(FILE_PATH.exists());
System.out.println(FILE_PATH.getAbsoluteFile());
FileInputStream fIn = new FileInputStream(FILE_PATH);
Scanner reader = new Scanner(fIn);
}
}