NetBeans 中的 Java 相对路径

发布于 2024-11-29 08:44:08 字数 499 浏览 1 评论 0原文

我正在开发一个 NetBeans 模块,其中有一个名为 test 的 Java 包和另一个名为 test.templates 的包。我想从测试包中的 Java 文件读取 test.templates 包中的文本文件。我尝试了多种方法,但它给出了 FileNotFoundException 异常:

BufferedReader br = new BufferedReader(new FileReader("templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("/test/templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("src/test/templates/test.txt"));

但这些都不起作用..我想使用相对路径,而不是绝对路径。我应该怎么办?

I am developing a NetBeans module where I have a Java package called testand another package called test.templates. I want to read a text file which is in the test.templates package from a Java file in the test package. I tried in several ways, but it gives a FileNotFoundException exception:

BufferedReader br = new BufferedReader(new FileReader("templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("/test/templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("src/test/templates/test.txt"));

But none of these worked.. I want to use the relative path, not the absolute path. What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

骷髅 2024-12-06 08:44:08

您将需要使用 getResourcegetResourceAsStream

java2s.com 上的示例:

http://www.java2s.com/Code /Java/Development-Class/Loadresourcefilerelativetotheclasslocation.htm

You will want to use getResource or getResourceAsStream.

Example on java2s.com:

http://www.java2s.com/Code/Java/Development-Class/Loadresourcefilerelativetotheclasslocation.htm

夏末 2024-12-06 08:44:08

您应该注意有关相对路径(Netbeans)的一些信息:

+ 文件:默认为项目文件夹,即在 src 文件夹之外。
如果保存到 test.txt,它将生成:project/test.txt
如果保存到 data/test.txt,...project/data/test.txt
所以如果你想加载文件,你只需执行相反的操作即可。像这样,您应该将文件放在project/data/filename.txt 中。然后在编码时,您将获得路径:data/filename.txt

+ ImageIcon:如果可以的话我稍后会分享。
+ 图片(SplashScreen):我稍后会分享。

You should note somethings about relative path (Netbeans):

+ File: Default is project folder, means outside of src folder.
If you save to test.txt, it will generate: project/test.txt.
If you save to data/test.txt, ... project/data/test.txt
So if you want to load file, you just do it conversely. Like this, you should put your files in project/data/filename.txt. Then when code, you get path: data/filename.txt.

+ ImageIcon: I will share later if can.
+ Image(SplashScreen): I will share later.

幽蝶幻影 2024-12-06 08:44:08

getResource() 返回一个 URL,因此要提取文件名,您可以尝试调用 getFile()

您传递给 getResource 的文件路径将基于您的 netbeans 包。使用前导斜杠表示类路径的根。

例子:

getResource(/db_files/table.csv).getFile()

getResource() returns a URL, so to extract the filename, you can try calling getFile().

The filepath you pass to getResource will be based on your netbeans package. Use a leading slash to denote the root of the classpath.

Example:

getResource(/db_files/table.csv).getFile()
只是偏爱你 2024-12-06 08:44:08
try
{
BufferedReader br = new BufferedReader(new FileReader(getClass().getResource("/test/templates/test.txt").toString().substring(6)));
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(this, ee);   
}
try
{
BufferedReader br = new BufferedReader(new FileReader(getClass().getResource("/test/templates/test.txt").toString().substring(6)));
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(this, ee);   
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文