FileInputStream永远不会找到该文件

时间:2014-01-26 16:17:09

标签: java

我无法使下面的代码工作:

public static void main(String[] args) {
    try {
        InputStream f = new FileInputStream("test.txt");
    } catch (Throwable t) {
        t.printStackTrace(System.err) ;
    }
}

这会抛出一个异常,指出找不到文件test.txt。我已经尝试将它放在项目的几乎所有目录中,我已经检查了根目录的用途:

System.out.println(new File(".").getAbsolutePath());

无论我把文件放在哪里,它都永远找不到它。甚至尝试将它放在C:\ test.txt中,这也不起作用

返回的异常如下:

java.io.FileNotFoundException: test.txt (Le fichier spécifié est introuvable // means File not found)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at main.Main.main(Main.java:30)

1 个答案:

答案 0 :(得分:0)

这取决于你的起始路径。如果你从你的家庭位置运行java,java将在本地目录上获取文件。

绝对路径

穿上c:并尝试

InputStream f = new FileInputStream("c:\\test.txt");

相对路径

放置本地目录并使用以下信息进行测试

String current = new java.io.File( "." ).getCanonicalPath();
System.out.println("Current dir:"+current);

File folder = new File(".");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    System.out.println("File :'" + listOfFiles[i].getName()."'");
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + listOfFiles[i].getName());
  }
}