无法从相对路径读取/写入文件
问题描述:
我一直在尝试读取和写入我的项目下我的资源目录下的文件。但是,无论我做什么,它都不允许我这样做。无法从相对路径读取/写入文件
这是我的项目层次结构以供参考:
出于所有这些:
Paths.get("memes.txt")
Paths.get("resources/memes.txt")
Paths.get("/resources/memes.txt")
...
都没有奏效。我究竟做错了什么?
答
是它是一个Maven项目? 试试这个:
//Get file from resources folder
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
编号:https://www.mkyong.com/java/java-read-a-file-from-resources-folder/
答
使用“../resources/memes.txt”与试试吧“”你从当前文件转到上一级目录(我假设你正在使用SwearTest.java代码)
+0
尽管如此,它仍然会抛出“线程异常”main“java.nio.file.NoSuchFileException:.. \ resources \ memes.txt”。是的,我正在使用SwearTest.java中的代码 –
答
您的应用程序可以被打包为.jar文件 - ZIP格式。 那里,或者在建的classes目录下应该是memes.txt
。一个所谓的资源,以及在jar文件不是真正的文件系统文件的情况下。但是位于班级路径上。
URL url = getClass().getResource("/memes.txt");
InputStream in = getClass().getResourceAsStream("/memes.txt");
该路径是相对于类的包目录,或绝对如上。
[如何真正从Java中的类路径读取文本文件]可能的副本(http://stackoverflow.com/questions/1464291/how-to-really-read-text-file-from-classpath-in-java ) – Matt