在 JSP 项目中 我正在从目录中读取文件。如果我给出完整路径,那么我可以轻松读取文件
BufferedReader br = new BufferedReader(new FileReader("C:\\ProjectFolderName\\files\\BB.key"));
但我不想写完整路径,我只想给出包含文件的文件夹名称,如下所示。
BufferedReader br = new BufferedReader(new FileReader("\\files\\BB.key"));
如何做到这一点?
String currentDirectory = new File("").getAbsolutePath();
System.out.println(currentDirectory);
BufferedReader br = new BufferedReader(new FileReader(currentDirectory + "\\files\\BB.key"));
上面的方法都试过了还是无法读取文件
打印行给出以下输出
信息:C:\Program Files\NetBeans 7.3
最佳答案
使用
File file = request.getServletContext().getRealPath("/files/BB.key");
这会将相对 URL 路径(因此为“/”)从 Web 内容目录转换为文件系统文件。
对于可移植 Web 应用程序,并且知道文件是 Windows Latin-1 格式,明确说明编码,否则将给出主机的默认操作系统编码。
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file), "Windows-1252"));
如果文件存储为资源,在/WEB-INF/classes/下你也可以使用
BufferedReader br = new BufferedReader(new InputStreamReader(
getClass().getResourceAsStream("/files/BB.key"), "Windows-1252"));
在那种情况下,文件将驻留在/WEB-INF/classes/files/BB.key 下。
关于java - 从项目目录中的文件夹中读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745018/