Java,从当前目录读取文件?

2022-08-31 11:00:17

我想要一个java程序,从当前目录(运行.class文件的同一目录)读取用户指定的文件名。

换句话说,如果用户将文件名指定为“myFile.txt”,并且该文件已在当前目录中:

reader = new BufferedReader(new FileReader("myFile.txt"));

不起作用。为什么?

我在窗口中运行它。


答案 1

尝试

System.getProperty("user.dir")

它返回当前工作目录。


答案 2

当前目录(不一定)是.class文件所在的目录。它是流程的工作目录。(即:启动JVM时所在的目录)

您可以使用 getResourceAsStream() 从与.class文件相同的目录* 加载文件。这将为您提供一个 InputStream,您可以使用 InputStreamReader 将其转换为 Reader。


*请注意,此“目录”实际上可能是一个 jar 文件,具体取决于从何处加载类。


推荐