以下代码段为jsp页面中截取,我执行后发现语句a执行了,但语句b未执行。原因是存在语句x,请问各位,为什么?谢谢。
<%
try
{
out.print("aa"); // 语句a
File fl = new File("questions.txt");
FileReader fRead = new FileReader("fl"); // 语句x
out.print("bb"); // 语句b
}
catch (Exception e)
{
e.printStackTrace();
}
%>
<%
try
{
out.print("aa"); // 语句a
File fl = new File("questions.txt");
FileReader fRead = new FileReader("fl"); // 语句x
out.print("bb"); // 语句b
}
catch (Exception e)
{
e.printStackTrace();
}
%>
FileReader fRead = new FileReader("fl"); ,双引号干什么呢????
FileReader fRead = new FileReader(fl); 试试
<%@ page contentType = "text/html;charset=GB2312" %>
<%@ page import = "java.io.*" %>
<HTML>
<HEAD><TITLE>test</TITLE></HEAD>
<BODY>
<%
try
{
out.print("aa");
File fl = new File("questions.txt");
FileReader fRead = new FileReader(fl);
out.print("bb");
}
catch (Exception e)
{
e.printStackTrace();
}
%>
</BODY>
</HTML>
<%@ page import="java.io.*"%>
<HTML>
<HEAD> <TITLE>test </TITLE> </HEAD>
<BODY>
<%
try
{
out.print("aa");
//比如c盘目录下有个questions.txt文件,你可以这样写(绝对路径的写法)
File fl = new File("c:/questions.txt");
FileReader fRead = new FileReader(fl);
out.print("bb");
}
catch (Exception e)
{
//加上这个语句,可以打印具体后台的错误原因
out.print(e.toString());
e.printStackTrace();
}
%>
</BODY>
</HTML>
那可以分析一下原因吗?我的question.txt文件是跟jsp文件在同一目录下的啊,为什么一定要写全路径名呢?
如果要找到文件的路径,你必须首先得到文件的物理的路径。
如果文件question.txt是跟jsp文件在同一目录下,你可以这样写:
File fl = new File(session.getServletContext().getRealPath("question.txt"));