我试图在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"位于哪儿?
答案 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文件夹中找到文件。