一尘不染

从项目目录内的文件夹中读取文件

jsp

在一个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


阅读 474

收藏
2020-06-08

共1个答案

一尘不染

采用

File file = request.getServletContext().getRealPath("/files/BB.key");

这会将相对的URL路径(因此为“ /”)从Web内容目录转换为文件系统File。

对于可移植的Web应用程序,要知道文件位于Windows Latin-1中,则应明确声明其编码,否则,将提供主机程序的默认OS编码。

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下。

2020-06-08