放置相对于程序的输入文件

时间:2011-05-23 03:45:51

标签: java file-io

在我的程序(简单的普通cosole应用程序)中,我正在读取文件a.txt。 现在我将把程序交给别人,他应该可以运行它。我不希望文件路径像D:\a.txt ,那样修复,而应该相对于我的程序。我应该在哪里放置文件,以便我的程序总能找到它?

File file = new File("D:\aks.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while( (str= bufferedReader.readLine())!=null){

}

当我对D:\ a.txt

这样的路径进行硬编码时,我的代码工作正常

1 个答案:

答案 0 :(得分:1)

将文件放在类路径中(例如包根或某个包中),然后直接从类路径中获取,如下所示

InputStream input = getClass().getResourceAsStream("/a.txt");
// ... (continue with InputStreamReader and so on)

(确切路径取决于当前类的位置以及是否以/为前缀从包根开始,以及您正在使用的类加载器)

将其打包并分发为单个executabele JAR文件。

另见: