3

我正在使用 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 读取),我不确定如何能够获得相同的结果。有人能帮我找到解决这个问题的方法吗,还是我应该把这个问题问到另一个问题中以防止头痛?

4

4 回答 4

2

您可以将它们放在您希望的任何位置,但这取决于您希望通过放置文件来实现什么。

一般的做法是创建一个名为 resc/resource 的文件夹并将文件放入其中。在类路径中包含该文件夹。

于 2013-05-17T16:55:20.403 回答
1

您可以将文件存储在 java 包中并将它们作为类路径资源读取。例如,您可以将文本文件添加到 java 包中com.foo,并使用此线程来了解如何读取它们:How to really read text file from classpath in Java

这样它们就独立于环境并与代码本身共同打包。

于 2013-05-17T16:54:32.553 回答
0

在项目类路径中添加文件。(在eclipse->Build Path->configure build path中右键项目可以找到项目的类路径)

于 2013-05-17T16:58:44.937 回答
-1

我猜你想要一个内部 .txt 文件。

包资源管理器 => 右键单击​​您的项目 => 新建 => 文件。然后输入文件名并完成。

代码中的路径应如下所示:

Scanner diskScanner = new Scanner(new File("YourFile"));
于 2013-05-17T18:04:34.690 回答