讀取文件
兩種方式:一種利用ServletContext 來讀取上下文中的資源;另一種使用java.io.FileReader
來讀取任何位置上的文件。
ServletContext 讀取文件
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<%
try
{
//使用ServletContext 裝入文件資源
//這里的path參數必須在上下文環境中,所以必須以“/“開始
//使用InputStream,沒有使用緩沖輸入流,效率低
InputStream in=getServletContext().getResourceAsStream("/file.txt");
String file="";
int temp=0;
while((temp=in.read())!=-1)
{
file+=(char)temp;
}
//關閉輸入流。
in.close();
//使用InputStream對象,在讀取文件內容后因該進行重編碼,否則會產生亂碼
out.println(new String(file.getBytes("iso-8859-1")));
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
改進后:
<%@ page contentType="text/html; charset=gb2312" import="java.io.*" buffer="64kb"%>
<%
try
{
InputStream in=getServletContext().getResourceAsStream("/file.txt");
String file="";
String temp="";
//效率提升,而且不用擔心亂碼問題
BufferedReader buffer=new BufferedReader(new InputStreamReader(new BufferedInputStream(in)));
while((temp=buffer.readLine())!=null)
{
file+=temp;
}
buffer.close();
in.close();
out.println(file);
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
使用FileReader讀取文件:
<%@ page contentType="text/html; charset=gb2312" import="java.io.*" buffer="64kb"%>
<%
try
{
BufferedReader in=new BufferedReader(new FileReader("c:\\UserSession.java"));
String file="";
String temp="";
while((temp=in.readLine())!=null)
{
file+=temp;
}
in.close();
out.println(file);
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
寫入內容到文件
使用FileWriter 對象寫入文件
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<html>
<body>
<%
request.setCharacterEncoding("gb2312");
String content=request.getParameter("content");
%>
<%
try
{
PrintWriter writer= new PrintWriter(new BufferedWriter(new
FileWriter("c:\\foo.out",true)));
writer.write(content);
writer.close();
out.println("已經把內容寫入到c:\\foo.out");
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
<form action="writeFile.jsp" method=post>
<textarea name=content cols=20 rows=5></textarea><br>
<input type=submit value=提交>
</form>
</body>
</html>