当前位置: 首页 > 知识库问答 >
问题:

使用getResourceAsStream()从Java中的另一个包读取文件

蒙胤
2023-03-14

我试图读取一个名为“numbers.txt”的文件,该文件中填充了整数(每行一个整数,没有空行)。我想把数字放入一个数组,然后返回这个数组(methodreadIntsFromFile)。无法找到文件,因此InputStream cls返回null。如果我把文件“numbers.txt”和ClassReadFileInput放在同一个文件夹中,它会工作,但我不知道如果我把“numbers.txt”文件放在resources文件夹中,为什么它不工作。我想getResourceAsStream()可以把它放到那里吗?main只是创建一个新的class对象,并使用参数“numbers.txt”调用class函数,并将结果保存在数组中。

下面是使用方法readIntsFromFile的类:

package impl;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class ReadFileInput {

    public int[] readIntsFromFile(String path) {
        ArrayList<Integer> arrList = new ArrayList<>();

        try {
            InputStream cls = ReadFileInput.class.getResourceAsStream(path);
            System.out.println("Get Resources as Stream: " + cls);
         
            //Put cls in ArrayList
        
            }
            cls.close();
        } catch (Exception e) {
            System.out.println(e);
        }

        int[] arr = arrList.stream().mapToInt(Integer::intValue).toArray();
        System.out.println(arr);
        return arr;
    }
}

你知道它是怎么工作的吗?

所有最好的!

共有1个答案

徐兴昌
2023-03-14

传递给某个lass.class.get资源()(当然还有getResourceAsStream)的字符串值有两种模式。

>

您想要进入绝对模式:您想要提供SomeClass的“类路径源”。类文件,JVM用来加载某个类的代码,然后在同一个位置查找,例如,/img/load。从那里开始。换句话说,ifSomeClass的代码是通过从jar文件条目/com/foo/SomeClass加载字节码获得的。在jarfilemyapp中初始化。jar,您希望通过加载jar文件条目/img/load获得数据。png来自jarfilemyapp。jar。你可以这么做——只需从斜线开始。

鉴于您的numbers.txt文件似乎位于资源的“根目录”中,这强烈建议您传递给. getResourceAsStream()的字符串应该是"/numbers.txt"。注意前导斜杠。

NB:这不是一条很好的路<代码>之类的都不起作用。奇怪的是,com。福。数字。如果jar文件包含/com/foo/numbers,则txt将使用。txt

 类似资料:
  • 在Karaf中,包有没有办法从另一个包读取属性文件? 我有 bundle1,它包含 bundle2 使用的一些类(bundle1 通过 maven-bundle-plugin 导出包含这些类的包,bundle2 导入它)。但是 bundle2 还需要使用 bundle1 中的属性文件。除了类之外,还有没有办法从 bundle1 访问一个文件? 据我所知,一种选择是通过features文件将属性部署

  • 我一直在努力阅读java项目中的文本文件,我一整天都在寻找解决方案,我尝试了很多方法,但没有一个有效。其中一些:(另外,我必须使用文件和扫描程序类) 异常线程"main"java.nio.file.NoSuchFileExc0019: test\fileTest.txt 异常线程"main"java.lang.NullPointerExc0019 线程“main”java中出现异常。木卫一。Fil

  • 问题内容: 我们没有只介绍ArrayLists数组和2D数组。我需要做的是能够从另一个类的ArrayList中读取。主要目的是在for循环中读取它们,并使用存储在其中的值显示项目。但是,我已经制作了这个快速程序来对其进行测试并不断得到此错误 这是我的代码 然后是ArrayList所在的类 如果有人可以指出正确的方向,那将非常有价值。我尝试调试,但是我可以获得任何帮助。 提前致谢。 问题答案: 严格

  • 在Java(任何库)中,从像下面这样的json开始(具有嵌套字段、数组和嵌入文档): 然后应用以下jsonpath(作为示例,理想情况下是任何类型的jsonpath) 创建如下所示的json文档: 所以问题是:使用jsonpath不仅可以获取数据,还可以获取所有嵌套字段,并创建一个新的json作为输入的子集? 任何例子都像往常一样受到赞赏 注意:在对此进行了大量思考之后,我得出的结论是,我需要的是

  • 我有一个巨大的文件(2GB),其中只包含员工编号。我必须阅读此文件,获取员工号码并调用数据库以获取员工的工资,然后将其写入另一个文件中,并将员工姓名和工资作为其行。 现在的问题是,通过直接读取这个巨大的文件通过简单的nio在java我的STS内存溢出或它需要4-5小时来完成整个读-取-写过程。 所以我想用Java并发来拯救我。 为此,我有一个实现Runnable的EmployeeDetails类,

  • 如何用Java将一个Excel的文件的数据读取到另一个Excel中? 我有两个excel文件,希望将A文件中的数据合并在B文件中。有没有推荐的方案