繁体   English   中英

txt文件(Java)与getResource()一起使用时的问题

[英]Issues using getResource() with txt file (Java)

我有一个设置,可以在程序中使用txt文件(读写文件)。 目前,我已经对其进行了设置,以便可以在计算机上使用本地文件路径,但是我需要将其打包到可执行的JAR中。 为此,我尝试将文件路径字符串切换为以下内容:

String filepath = MyClass.class.getResource("/resources/textfile.txt");

但是,当我运行此命令时,会遇到很多错误。 谷歌搜索方法后,我发现了类似的方法getResourceAsStream ,我也尝试过。 这似乎返回一个InputStream对象,但是理想情况下,我需要将文件路径作为字符串。 这可能吗? 如果没有,我有什么选择?

附加信息:

这是尝试读取和写入txt文件时收到的错误消息:

java.io.FileNotFoundException:/Users/Fred/Documents/Eclipse%20Projects/RandomProject/bin/resources/textfile.txt (No such file or directory)

那么您提供的代码将无法编译,因为Class.getResource返回的是URL而不是String 您不能将资源视为“仅另一个文件”,因为不是。

基本上,您应该更改需要读取文件以接受InputStream而不是文件名的任何内容,然后传递调用getResourceAsStream()的结果。

该方法返回URL,而不是String。 它的签名是public URL getResource(String name)

您可能想要做:

String filepath = MyClass.class.getResource("/resources/textfile.txt").getPath();

我有一个设置,可以在程序中使用txt文件(读写文件)。

对于只读,资源可以位于应用程序类路径上的Jar中。 (在生产中)应用程序类路径上的资源可写非常罕见。 该文本文件很可能需要放在可复制的路径中(例如, user.home的子目录-子目录基于包名称),并用作该路径中的File

或换一种说法。 我认为您正在追求错误的道路,以实现目标。

如果您希望直接写入JAR中的文本文件,那么我的朋友,那么您一路走错! 请为我们发布更多代码,以了解您到底想要实现什么以及如何实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM