如何在Java Server Page Directory中读取TXT文件

far*_*ati 5 java jsp web

我想创建一个需要读取.txt项目目录中的文件的应用程序.

这是我的代码index.jsp:

<%@page import="java.io.FileReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Read Text</title>
    </head>
    <body>
        <%
            BufferedReader reader = new BufferedReader(new FileReader("aFile.txt"));
            StringBuilder sb = new StringBuilder();
            String line;

            while((line = reader.readLine())!= null){
                sb.append(line+"\n");
            }
            out.println(sb.toString());
        %>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我执行上面的代码时,我的浏览器告诉我aFile.txt无法找到.然后,我放入aFile.txt了与此网页run(index.jsp)相同的目录.我想知道,我应该写什么来找到目录aFile.txt

这就是我的问题得到解决的方法.谢谢Ahmad hasem

<%@page import="java.io.File"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.net.URL"%>
<%@page import="java.io.FileReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Read Text</title>
    </head>
    <body>
        <%
            String jspPath = session.getServletContext().getRealPath("/res");
            String txtFilePath = jspPath+ "/aFile.txt";
            BufferedReader reader = new BufferedReader(new FileReader(txtFilePath));
            StringBuilder sb = new StringBuilder();
            String line;

            while((line = reader.readLine())!= null){
                sb.append(line+"\n");
            }
            out.println(sb.toString());
        %>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ahm*_*hem 5

要获取正在运行的JSP的目录,可以调用以下代码:

String jspPath = session.getServletConfig().getServletContext().getRealPath("/");
Run Code Online (Sandbox Code Playgroud)

此代码假定JSP驻留在Web应用程序的根目录中.然后,您可以将txt文件名附加到jspPath

String txtFilePath = jspPath + java.util.File.separator + "aFile.txt";
Run Code Online (Sandbox Code Playgroud)


Siv*_*lam 0

尝试从应用程序的根路径找到它。

http://www.java2s.com/Code/Java/JSP/ReadingBinaryData.htm