当前位置: 首页 > 面试题库 >

如何获取Java资源作为文件?

宇文念
2023-03-14
问题内容

我必须阅读一个包含字符串列表的文件。我试图遵循建议这个职位。两种解决方案都需要使用FileUtils.readLines,但使用String而不是a File作为参数。

Set<String> lines = new HashSet<String>(FileUtils.readLines("foo.txt"));

我需要一个File

这篇文章
是我的问题,除非OP被劝说不要完全使用文件。如果要使用Apache方法,则需要一个文件,这是我最初遇到的问题的首选解决方案。

我的文件很小(大约一百行),每个程序实例一个文件,因此我不必担心在内存中有另一个文件副本。因此,我可以使用更基本的方法来读取文件,但到目前为止,它看起来FileUtils.readLines更加干净。我如何从资源到文件。


问题答案:

Apache Commons-IO具有一个IOUtils类和一个FileUtils,它包括一种与FileUtils中的readLines方法类似的方法。

因此,您可以使用getResourceAsStreamgetSystemResourceAsStream并传递其结果IOUtils.readLines来获取List<String>文件的内容:

List<String> myLines = IOUtils.readLines(ClassLoader.getSystemResourceAsStream("my_data_file.txt"));


 类似资料:
  • 问题内容: Java中是否有一种方法可以在通过类加载器从jar检索的资源上构造File实例? 我的应用程序使用jar(默认)或运行时指定的文件系统目录(用户输入)中的某些文件。我正在寻找一种一致的方式 a)将这些文件作为流加载 b)分别列出用户定义的目录或jar中的目录中的文件 编辑:显然,理想的方法是完全远离java.io.File。有没有办法从类路径加载目录并列出其内容(包含在其中的文件/实体

  • 问题内容: 我在项目的根目录中有一个资源文件夹/程序包,我“不想”加载某个文件。如果我想加载某个文件,我将使用class.getResourceAsStream,我会很好的!我实际上想要做的是在资源文件夹中加载一个“文件夹”,循环访问该文件夹中的文件,并获取每个文件的流,并读取内容…假设在运行时之前未确定文件名… 我该怎么办?有没有一种方法可以获取jar文件中“文件夹”中文件的列表?请注意,带有资

  • 我正试着从我的罐子里加载一个图像。但是,无论我为getResource()提供什么字符串,它总是返回null。 线程“AWT-EventQueue-0”java.lang.NullPointerException在Net.SharpCode.Crawler.UI.CrawlerFrame.init(CrawlerFrame.java:35)在Net.SharpCode.Crawler.UI.Cra

  • 问题内容: 我正在尝试获取资源的途径,但是我没有运气。 这是可行的(在IDE和JAR中都可以),但是这样一来,我无法获取文件的路径,只能获取文件内容: 如果我这样做: 结果是: 有没有办法获取资源文件的路径? 问题答案: 这是故意的。“文件”的内容可能无法作为文件使用。请记住,您正在处理的类和资源可能是JAR文件或其他类型的资源的一部分。类加载器不必为资源提供文件句柄,例如jar文件可能尚未扩展为

  • 问题内容: 我正在尝试从作为桌面应用程序运行的单独jar中访问jar文件中的XML文件。我可以获取所需文件的URL,但是当我将其传递给FileReader(作为字符串)时,我得到了FileNotFoundException,上面写着“文件名,目录名或卷标语法不正确”。 作为参考,我毫不费力地从同一个jar中读取图像资源,并将URL传递给ImageIcon构造函数。这似乎表明我用来获取URL的方法是

  • 我正在尝试从类路径/JAR 文件作为文件对象访问资源。我知道这是使用输入流对象的首选方法,但我使用的是需要文件对象的外部库(WorldEdit)。 这是我的代码: 现在,当我还在eclipse中时,访问资源的两种方式都可以完美地工作并产生以下输出: 但是,在将代码导出到 JAR 存档后,代码将失败: 因此,我一直在寻找一种方法,要么直接以文件形式访问资源,要么使用InputStream并将该Inp