jsp操作文件
jsp操作文件:讀取文件和寫入文件,下面分別介紹一.讀取文件,二.寫入文件
一。讀取文件
1。使用ServletContext,只能讀取Servlet上下文中的文件。
2。java.io.FileReader對象,可以讀取任何位置的文件。
下面我們介紹兩種方式的編碼:
1。使用ServletContext,只能讀取Servlet上下文中的文件。
在ServletContext接口中定義了java.io.InputStream ,getsourceAsStream(java.lang.String path)來訪問給定的資源。使用了InputStream對象後對字符要進行重新編碼。請看下面的readFile.jsp文件。
readFile.jsp
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<%
try
{
//使用ServletContext裝入文件資源
InputStream in=getServletContext().getResourceAsStream("/file.txt");//獲取給定的資源
String file="";
int temp=0;
while((temp=in.read())!=-1)
{
file+=(char)temp;
}
//關閉輸入流。
in.close();
out.println(new String(file.getBytes("iso-8859-1"))); //重新編碼
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
<------------------------->
爲提高速度,減少佔用資源,避免出現中文問題,我們使用帶緩衝的輸入流來讀取文件資源。讓我們來看readFile2.jsp文件
readFile2.jsp
<%@ 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();
}
%>
-------------------------------------------------------------------------------------------------
2。使用java.io.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();
}
%>
二.寫入文件
1。使用java.io.FileReader對象
2。使用FileOutputStream
下面讓我們來看代碼:
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<html>
<body>
<%
request.setCharacterEncoding("gb2312");
String content=request.getParameter("content");
%>
<%
try
{
PrintWriter wt= new PrintWriter(new BufferedWriter(new FileWriter("c:////foo.out",true)));
//PrintWriter wt= new PrintWriter(new FileOutputStream("c:////foo.out",true));
wt.write(content);
wt.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>
一。讀取文件
1。使用ServletContext,只能讀取Servlet上下文中的文件。
2。java.io.FileReader對象,可以讀取任何位置的文件。
下面我們介紹兩種方式的編碼:
1。使用ServletContext,只能讀取Servlet上下文中的文件。
在ServletContext接口中定義了java.io.InputStream ,getsourceAsStream(java.lang.String path)來訪問給定的資源。使用了InputStream對象後對字符要進行重新編碼。請看下面的readFile.jsp文件。
readFile.jsp
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<%
try
{
//使用ServletContext裝入文件資源
InputStream in=getServletContext().getResourceAsStream("/file.txt");//獲取給定的資源
String file="";
int temp=0;
while((temp=in.read())!=-1)
{
file+=(char)temp;
}
//關閉輸入流。
in.close();
out.println(new String(file.getBytes("iso-8859-1"))); //重新編碼
out.flush();
}
catch(Exception e)
{
out.println(e);
e.printStackTrace();
}
%>
<------------------------->
爲提高速度,減少佔用資源,避免出現中文問題,我們使用帶緩衝的輸入流來讀取文件資源。讓我們來看readFile2.jsp文件
readFile2.jsp
<%@ 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();
}
%>
-------------------------------------------------------------------------------------------------
2。使用java.io.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();
}
%>
二.寫入文件
1。使用java.io.FileReader對象
2。使用FileOutputStream
下面讓我們來看代碼:
<%@ page contentType="text/html; charset=gb2312" import="java.io.*"%>
<html>
<body>
<%
request.setCharacterEncoding("gb2312");
String content=request.getParameter("content");
%>
<%
try
{
PrintWriter wt= new PrintWriter(new BufferedWriter(new FileWriter("c:////foo.out",true)));
//PrintWriter wt= new PrintWriter(new FileOutputStream("c:////foo.out",true));
wt.write(content);
wt.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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.