文件默认位置

时间:2015-10-29 18:44:59

标签: java netbeans applet

为什么程序会搜索文件:

    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

我如何抵消默认位置?

如果此帖中的内容不好,请告诉我并且不要投反对票。

谢谢!

为什么负面投票???????????????什么是你的问题???????????

1 个答案:

答案 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

  1. 指定的文件不存在。
  2. 指定的文件实际上是一个目录而不是文件。
  3. 由于某种原因,无法打开指定的文件进行阅读。
  4. 根据您的描述,前两个原因不太可能,请使用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);
        }
    }