我正在尝试处理示例应用程序以在/ tmp目录中显示文件的内容。
但是没有成为开发人员会给我带来一些麻烦。
这是我正在使用的代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.io.*, java.net.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JSP Reading Text File</title>
</head>
<body>
<%
String fileName = "/WEB-INF/test";
InputStream ins = application.getResourceAsStream(fileName);
try {
if (ins == null) {
response.setStatus(response.SC_NOT_FOUND);
} else {
BufferedReader br = new BufferedReader((new InputStreamReader(ins)));
String data;
while ((data = br.readLine()) != null) {
out.println(data + "<br>");
}
}
} catch (IOException e) {
out.println(e.getMessage());
}
%>
</body>
</html>
如果该文件位于应用程序的WEB-INF目录中,则显示它没有问题。
但是,如果我尝试从其他目录读取它,我将无法做到。
答案 0 :(得分:0)
经过反复试验,我最终找到了解决方案。我不知道这是否在最佳实践之间,但是它可行。
<%@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>
<%
BufferedReader reader = new BufferedReader(new FileReader("/tmp/test"));
StringBuilder sb = new StringBuilder();
String line;
while((line = reader.readLine())!= null){
out.println(line+"<br>");
}
out.println(sb.toString());
%>
</body>
</html>