Java,从当前目录读取文件?
2022-08-31 11:00:17
我想要一个java程序,从当前目录(运行.class文件的同一目录)读取用户指定的文件名。
换句话说,如果用户将文件名指定为“myFile.txt”,并且该文件已在当前目录中:
reader = new BufferedReader(new FileReader("myFile.txt"));
不起作用。为什么?
我在窗口中运行它。
我想要一个java程序,从当前目录(运行.class文件的同一目录)读取用户指定的文件名。
换句话说,如果用户将文件名指定为“myFile.txt”,并且该文件已在当前目录中:
reader = new BufferedReader(new FileReader("myFile.txt"));
不起作用。为什么?
我在窗口中运行它。
尝试
System.getProperty("user.dir")
它返回当前工作目录。
当前目录(不一定)是.class文件所在的目录。它是流程的工作目录。(即:启动JVM时所在的目录)
您可以使用 getResourceAsStream() 从与.class文件相同的目录* 加载文件。这将为您提供一个 InputStream,您可以使用 InputStreamReader 将其转换为 Reader。
*请注意,此“目录”实际上可能是一个 jar 文件,具体取决于从何处加载类。