java在哪里寻找文件?

时间:2012-05-17 21:11:02

标签: java file

我试图在java中读取文件:

Public class Test{

public static void main (String [] args) throws IOException {

BufferedReader f = new BufferedReader(new FileReader("test.in"));

//...

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out")));

//...                                 

}

}

1)" test.in"的位置应该在哪里?是? (src?bin????)

2)" test.out"位于哪儿?

5 个答案:

答案 0 :(得分:9)

在System.getProperty(“user.dir”)指定的目录中查找相对路径的文件

答案 1 :(得分:3)

通常它是您正在执行的Java文件的确切位置。因此,如果您在C:\中使用Java文件并且在没有指定路径的情况下查找文件,它将在C:\中查找,输出文件也将在C:\

但是,如果您使用的是Netbeans之类的东西,则只需将文件放在特定项目的netbeans项目文件夹中即可。不在项目的源文件夹或bin文件夹中。

答案 2 :(得分:3)

答案是工作文件夹,表示执行“java ...”命令的文件夹。例如,这是eclipse项目中的项目文件夹。

答案 3 :(得分:1)

我可能在这个问题上花了太长时间,但是:

C:\temp>notepad test_in.txt =>

Hello Java输入!

在同一目录中,创建“Test.java”:

package com.mytest;

import java.io.*;

public class Test {

  public static void main (String [] args) throws IOException {
    System.out.println ("Current directory is " + new File(".").getAbsolutePath());

    System.out.println ("Reading file " + INPUT_FILE + "...");
    BufferedReader fis = 
      new BufferedReader(new FileReader(INPUT_FILE));
    String s = fis.readLine ();
    fis.close ();
    System.out.println ("Contents: " + s + ".");

    System.out.println ("Writing file " + INPUT_FILE + "...");
    PrintWriter fos = 
      new PrintWriter(new BufferedWriter(new FileWriter("test_out.txt")));
    fos.println ("Hello Java output");
    fos.close ();
    System.out.println ("Done.");
  }

  private static final String INPUT_FILE = "test_in.txt";
  private static final String OUTPUT_FILE = "test_out.txt";
}

最后,运行它 - 指定完整的包名称:

C:\temp>javac -d . Test.java

C:\temp>dir com\mytest
 Volume in drive C has no label.
 Volume Serial Number is 7096-6FDD

 Directory of C:\temp\com\mytest

05/17/2012  02:23 PM    <DIR>          .
05/17/2012  02:23 PM    <DIR>          ..
05/17/2012  02:29 PM             1,375 Test.class
               1 File(s)          1,375 bytes
               2 Dir(s)  396,478,521,344 bytes free

C:\temp>java com.mytest.Test
Current directory is C:\temp\.
Reading file test_in.txt...
Contents: Hello Java input!.
Writing file test_in.txt...
Done.

C:\temp>dir/od test*.txt
 Volume in drive C has no label.
 Volume Serial Number is 7096-6FDD

 Directory of C:\temp

05/17/2012  02:24 PM                17 test_in.txt
05/17/2012  02:29 PM                19 test_out.txt
               2 File(s)             36 bytes

'希望这有助于解释一些事情,包括:

  • 关于编译和运行的“默认目录”

  • “包”与“目录”的关系

  • Java会将您的类文件放在包目录中(不一定是您的工作目录)

答案 4 :(得分:1)

Eclipse在项目的根文件夹(项目名称文件夹)中查找文件。所以你可以让src / test.in在项目的src文件夹中找到文件。