我正在使用 Eclipse(SDK v4.2.2)开发一个 Java 项目(Java SE,v1.6),该项目当前从外部 .txt 文件中读取信息,作为在单次传递中多次使用的方法的一部分。我想将这些文件包含在我的项目中,使它们“原生”以使项目独立于外部文件。我不知道在哪里将文件添加到项目中或如何添加它们以便可以通过适当的方法轻松使用它们。
在谷歌上搜索没有找到任何可靠的指导,我也没有在这个网站上找到任何类似的问题。如果有人知道如何添加文件以及他们应该去哪里,我将非常感谢任何建议,甚至是正确方向的一点。此外,如果需要有关代码或 .txt 文件的任何其他信息,我很乐意提供尽可能详细的信息。
2013 年 5 月 20 日更新:我已设法将文本文件放入类路径;它们位于名为“resc”的文件夹下的包中(根据 dharam 的建议),该文件夹与打包我的代码的“src”文件夹位于同一类路径级别。现在我只需要弄清楚如何让我的代码正确读取这些文件。具体来说,我想将选定的文件读入二维数组,逐行读取并用分隔符分割每一行。在将文件直接打包到工作区之前,我使用了 BufferedReader 来执行此操作:
public static List<String[]> fileRead(String d) {
// Initialize File 'f' with path completed by passed-in String 'd'.
File f = new File("<incomplete directory path goes here>" + d);
// Initialize some variables to be used shortly.
String s = null;
List<String> a = new ArrayList<String>();
List<String[]> l = new ArrayList<String[]>();
try {
// Use new BufferedReader 'in' to read in 'f'.
BufferedReader in = new BufferedReader(new FileReader(f));
// Read the first line into String 's'.
s = in.readLine();
// So long as 's' is NOT null...
while(s != null) {
// Split the current line, using semi-colons as delimiters, and store in 'a'.
// Convert 'a' to array 'aSplit', then add 'aSplit' to 'l'.
a = Arrays.asList(s.split("\\s*;\\s*"));
String[] aSplit = a.toArray(new String[2]);
l.add(aSplit);
// Read next line of 'f'.
s = in.readLine();
}
// Once finished, close 'in'.
in.close();
} catch (IOException e) {
// If problems occur during 'try' code, catch exception and include StackTrace.
e.printStackTrace();
}
// Return value of 'l'.
return l;
}
如果我决定使用 Pangea 提供的链接中描述的方法(使用 getResourceAsStream 将文件作为 InputStream 读取),我不确定如何能够获得相同的结果。有人能帮我找到解决这个问题的方法吗,还是我应该把这个问题问到另一个问题中以防止头痛?