文件默认位置
File default location
为什么程序搜索文件:
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);
位于:C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt
如何抵消默认位置?
如果这里post有什么不好的,请告诉我,不要投反对票。
谢谢!
为什么投反对票???????????你的问题是什么????????
请仔细检查您的错误详细信息。您可能已经看到类似下面的错误。实际上该程序并不是在搜索文件 "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.Whosebug.answer.SimpleFileHelper.main(SimpleFileHelper.java:17)
希望你现在清楚了。
抛出 FileNotFoundException
的主要机会有 3 种。
- 指定的文件不存在。
- 命名的文件实际上是一个目录而不是文件。
- 由于某种原因无法打开指定文件进行读取。
根据您的描述,前两个原因不太可能,请使用file.canRead()
方法检查第三点。
如果上面的测试 returns 为真,我会怀疑以下内容:
您可能忘记了显式抛出或捕获潜在的异常(即 FileNotFoundExcetion
)。如果你在 IDE 中工作,你应该从编译器那里得到一些抱怨。但我怀疑你没有 运行 你的代码 IDE.
尝试以下代码,看看异常是否会消失:
package com.Whosebug.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);
}
}
为什么程序搜索文件:
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);
位于:C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt
如何抵消默认位置?
如果这里post有什么不好的,请告诉我,不要投反对票。
谢谢!
为什么投反对票???????????你的问题是什么????????
请仔细检查您的错误详细信息。您可能已经看到类似下面的错误。实际上该程序并不是在搜索文件 "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.Whosebug.answer.SimpleFileHelper.main(SimpleFileHelper.java:17)
希望你现在清楚了。
抛出 FileNotFoundException
的主要机会有 3 种。
- 指定的文件不存在。
- 命名的文件实际上是一个目录而不是文件。
- 由于某种原因无法打开指定文件进行读取。
根据您的描述,前两个原因不太可能,请使用file.canRead()
方法检查第三点。
如果上面的测试 returns 为真,我会怀疑以下内容:
您可能忘记了显式抛出或捕获潜在的异常(即 FileNotFoundExcetion
)。如果你在 IDE 中工作,你应该从编译器那里得到一些抱怨。但我怀疑你没有 运行 你的代码 IDE.
尝试以下代码,看看异常是否会消失:
package com.Whosebug.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);
}
}