在一个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内容目录转换为文件系统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下。