java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。
1。新建目录
<%
@ page contentType
=
"
text/html;charset=gb2312
"
%>
<%
String filePath = " c:/aaa/ " ;
filePath = filePath.toString(); // 中文转换
java.io.File myFilePath = new java.io.File(filePath);
if ( ! myFilePath.exists())
myFilePath.mkdir();
%>
<%
String filePath = " c:/aaa/ " ;
filePath = filePath.toString(); // 中文转换
java.io.File myFilePath = new java.io.File(filePath);
if ( ! myFilePath.exists())
myFilePath.mkdir();
%>
2。新建文件
<%
@ page contentType
=
"
text/html;charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<%
String filePath = " c:/哈哈.txt " ;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if ( ! myFilePath.exists())
myFilePath.createNewFile();
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = " 中文测试 " .toString();
myFile.println(strContent);
resultFile.close();
%>
<% @ page import = " java.io.* " %>
<%
String filePath = " c:/哈哈.txt " ;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if ( ! myFilePath.exists())
myFilePath.createNewFile();
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = " 中文测试 " .toString();
myFile.println(strContent);
resultFile.close();
%>
3。删除文件
<%
@ page contentType
=
"
text/html;charset=gb2312
"
%>
<%
String filePath = " c:/支出证明单.xls " ;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
%>
<%
String filePath = " c:/支出证明单.xls " ;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
%>
4。文件拷贝
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
// 读到流中
InputStream inStream = new FileInputStream( " c:/aaa.doc " );
FileOutputStream fs = new FileOutputStream( " d:/aaa.doc " ); byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
%>
<% @ page import = " java.io.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
// 读到流中
InputStream inStream = new FileInputStream( " c:/aaa.doc " );
FileOutputStream fs = new FileOutputStream( " d:/aaa.doc " ); byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
%>
5。整个文件夹拷贝
<%
@ page contentType
=
"
text/html;charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<% String url1 = " C:/aaa " ;
String url2 = " d:/java/ " ;
( new File(url2)).mkdirs();
File[] file = ( new File(url1)).listFiles();
for ( int i = 0 ;i < file.length;i ++ ) ... {
if(file[i].isFile())...{
file[i].toString();
FileInputStream input=new FileInputStream(file[i]);
FileOutputStream output=new FileOutputStream(url2+"/"+(file[i].getName()).toString());
byte[] b=new byte[1024*5];
int len;
while((len=input.read(b))!=-1)...{
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
}
%>
<% @ page import = " java.io.* " %>
<% String url1 = " C:/aaa " ;
String url2 = " d:/java/ " ;
( new File(url2)).mkdirs();
File[] file = ( new File(url1)).listFiles();
for ( int i = 0 ;i < file.length;i ++ ) ... {
if(file[i].isFile())...{
file[i].toString();
FileInputStream input=new FileInputStream(file[i]);
FileOutputStream output=new FileOutputStream(url2+"/"+(file[i].getName()).toString());
byte[] b=new byte[1024*5];
int len;
while((len=input.read(b))!=-1)...{
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
}
%>
6。文件下载
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<%
String fileName = " zsc104.swf " .toString();
// 读到流中
InputStream inStream = new FileInputStream( " c:/zsc104.swf " );
// 设置输出的格式
response.reset();
response.setContentType( " bin " );
response.addHeader( " Content-Disposition " , " attachment; filename=" " + fileName + " " " );
// 循环取出流中的数据
byte [] b = new byte [ 100 ];
int len;
while ((len = inStream.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
inStream.close();
%>
<% @ page import = " java.io.* " %>
<%
String fileName = " zsc104.swf " .toString();
// 读到流中
InputStream inStream = new FileInputStream( " c:/zsc104.swf " );
// 设置输出的格式
response.reset();
response.setContentType( " bin " );
response.addHeader( " Content-Disposition " , " attachment; filename=" " + fileName + " " " );
// 循环取出流中的数据
byte [] b = new byte [ 100 ];
int len;
while ((len = inStream.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
inStream.close();
%>
7。数据库字段中的文件下载
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.sql.* " %>
<% @ page import = " java.lang.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " com.jspsmart.upload.* " %>
<% @ page import = " DBstep.iDBManager2000.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
// 打开数据库
ResultSet result = null ;
String Sql = null ;
PreparedStatement prestmt = null ;
DBstep.iDBManager2000 DbaObj = new DBstep.iDBManager2000();
DbaObj.OpenConnection();
// 取得数据库中的数据
Sql = " select * from t_local_zhongzhuan " ;
result = DbaObj.ExecuteQuery(Sql);
result.next();
// 将数据库中的数据读到流中
InputStream inStream = result.getBinaryStream( " content " );
FileOutputStream fs = new FileOutputStream( " c:/dffdsafd.doc " );
byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>
<% @ page import = " java.sql.* " %>
<% @ page import = " java.lang.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " com.jspsmart.upload.* " %>
<% @ page import = " DBstep.iDBManager2000.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
// 打开数据库
ResultSet result = null ;
String Sql = null ;
PreparedStatement prestmt = null ;
DBstep.iDBManager2000 DbaObj = new DBstep.iDBManager2000();
DbaObj.OpenConnection();
// 取得数据库中的数据
Sql = " select * from t_local_zhongzhuan " ;
result = DbaObj.ExecuteQuery(Sql);
result.next();
// 将数据库中的数据读到流中
InputStream inStream = result.getBinaryStream( " content " );
FileOutputStream fs = new FileOutputStream( " c:/dffdsafd.doc " );
byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>
8。把网页保存成文件
<%
@ page
import
=
"
java.text.*
"
%>
<% @ page import = " java.util.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " java.net.* " %>
<%
URL stdURL = null ;
BufferedReader stdIn = null ;
PrintWriter stdOut = null ;
try ... {
stdURL = new URL("http://www.163.com");
}
catch (MalformedURLException e) ... {
throw e;
}
try ... {
stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));
stdOut = new PrintWriter(new BufferedWriter(new FileWriter("c:/163.html")));
}
catch (IOException e) ... {
}
/** */ /***把URL指定的页面以流的形式读出,写成指定的文件***/
try ... {
String strHtml = "";
while((strHtml = stdIn.readLine())!=null) ...{
stdOut.println(strHtml);
}
}
catch (IOException e) ... {
throw e;
}
finally ... {
try ...{
if(stdIn != null)
stdIn.close();
if(stdOut != null)
stdOut.close();
}
catch (Exception e) ...{
System.out.println(e);
}
}
%>
<% @ page import = " java.util.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " java.net.* " %>
<%
URL stdURL = null ;
BufferedReader stdIn = null ;
PrintWriter stdOut = null ;
try ... {
stdURL = new URL("http://www.163.com");
}
catch (MalformedURLException e) ... {
throw e;
}
try ... {
stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));
stdOut = new PrintWriter(new BufferedWriter(new FileWriter("c:/163.html")));
}
catch (IOException e) ... {
}
/** */ /***把URL指定的页面以流的形式读出,写成指定的文件***/
try ... {
String strHtml = "";
while((strHtml = stdIn.readLine())!=null) ...{
stdOut.println(strHtml);
}
}
catch (IOException e) ... {
throw e;
}
finally ... {
try ...{
if(stdIn != null)
stdIn.close();
if(stdOut != null)
stdOut.close();
}
catch (Exception e) ...{
System.out.println(e);
}
}
%>
9。直接下载网上的文件
<%
@ page
import
=
"
java.io.*
"
%>
<% @ page import = " java.net.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
URL url = new URL( " http://pimg.163.com/sms/micheal/logo.gif " );
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream( " c:/abc.gif " );
byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>
<% @ page import = " java.net.* " %>
<%
int bytesum = 0 ;
int byteread = 0 ;
URL url = new URL( " http://pimg.163.com/sms/micheal/logo.gif " );
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream( " c:/abc.gif " );
byte [] buffer = new byte [ 1444 ];
int length;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>
10。按行读文件
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<% FileReader myFileReader = new FileReader( " c:/哈哈.txt " );
BufferedReader myBufferedReader = new BufferedReader(myFileReader);
String myString = null ;
String resultString = new String();
while ((myString = myBufferedReader.readLine()) != null ) ... { resultString=resultString+myString+"<br>"; }
out.println(resultString); myFileReader.close();
%>
<% @ page import = " java.io.* " %>
<% FileReader myFileReader = new FileReader( " c:/哈哈.txt " );
BufferedReader myBufferedReader = new BufferedReader(myFileReader);
String myString = null ;
String resultString = new String();
while ((myString = myBufferedReader.readLine()) != null ) ... { resultString=resultString+myString+"<br>"; }
out.println(resultString); myFileReader.close();
%>
11。 数据库里字段文件直接下载到客户端
<%
@ page
import
=
"
java.sql.*
"
%>
<% @ page import = " java.lang.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " com.jspsmart.upload.* " %>
<% @ page import = " DBstep.iDBManager2000.* " %>
<%
String fileName = " bb.doc " .toString();
// 打开数据库
ResultSet result = null ;
String Sql = null ;
PreparedStatement prestmt = null ;
DBstep.iDBManager2000 DbaObj = new DBstep.iDBManager2000();
DbaObj.OpenConnection();
// 取得数据库中的数据
Sql = " select * from marklist order by markdate desc " ;
result = DbaObj.ExecuteQuery(Sql);
result.next();
// 将数据库中的数据读到流中
InputStream in = result.getBinaryStream( " markbody " );
// 设置输出的格式
response.reset();
response.setContentType( " application/Msword " );
response.addHeader( " Content-Disposition " , " attachment; filename=" " + fileName + " " " );
// 循环取出流中的数据
byte [] b = new byte [ 1024 ];
int len;
while ((len = in.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
in.close();
%>
<% @ page import = " java.lang.* " %>
<% @ page import = " java.io.* " %>
<% @ page import = " com.jspsmart.upload.* " %>
<% @ page import = " DBstep.iDBManager2000.* " %>
<%
String fileName = " bb.doc " .toString();
// 打开数据库
ResultSet result = null ;
String Sql = null ;
PreparedStatement prestmt = null ;
DBstep.iDBManager2000 DbaObj = new DBstep.iDBManager2000();
DbaObj.OpenConnection();
// 取得数据库中的数据
Sql = " select * from marklist order by markdate desc " ;
result = DbaObj.ExecuteQuery(Sql);
result.next();
// 将数据库中的数据读到流中
InputStream in = result.getBinaryStream( " markbody " );
// 设置输出的格式
response.reset();
response.setContentType( " application/Msword " );
response.addHeader( " Content-Disposition " , " attachment; filename=" " + fileName + " " " );
// 循环取出流中的数据
byte [] b = new byte [ 1024 ];
int len;
while ((len = in.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
in.close();
%>
12。文件夹遍历
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<%
String url1 = " C:/aaa " ;
File f = ( new File(url1));
if (f.isDirectory()) ... {
File [] fe = f.listFiles();
go_on:
for (int i = 0;i<fe.length;i++)...{
if (fe[i].isDirectory())...{
File [] fe1 = fe[i].listFiles();
for (int j = 0;j<fe1.length;j++)...{
if (fe1[j].isDirectory())
continue go_on;
out.println(fe1[j].toString());
}
}
else out.println(fe[i].toString());
}
}
%>
<% @ page import = " java.io.* " %>
<%
String url1 = " C:/aaa " ;
File f = ( new File(url1));
if (f.isDirectory()) ... {
File [] fe = f.listFiles();
go_on:
for (int i = 0;i<fe.length;i++)...{
if (fe[i].isDirectory())...{
File [] fe1 = fe[i].listFiles();
for (int j = 0;j<fe1.length;j++)...{
if (fe1[j].isDirectory())
continue go_on;
out.println(fe1[j].toString());
}
}
else out.println(fe[i].toString());
}
}
%>
13。通过字符编码移动文件
<%
@ page contentType
=
"
text/html; charset=gb2312
"
%>
<% @ page import = " java.io.* " %>
<%
String ret = new String();
try
... {
byte[] bytes=new byte[102400];
InputStream in=new FileInputStream("c:/aaa.doc");
in.read(bytes);
ret=new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
in.close();
}
catch (FileNotFoundException e)
... {
e.printStackTrace();
}
catch (java.io.IOException ex)
... {
ex.printStackTrace();
}
out.println(ret);
byte [] bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);
java.io.ByteArrayInputStream inStream = new java.io.ByteArrayInputStream(bytes);
byte [] buffer = new byte [ 1444 ];
FileOutputStream fs = new FileOutputStream( " d:/aaa.doc " );
int bytesum = 0 ;
int byteread = 0 ;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
bytesum+=byteread;
fs.write(buffer,0,byteread);
}
%>
<% @ page import = " java.io.* " %>
<%
String ret = new String();
try
... {
byte[] bytes=new byte[102400];
InputStream in=new FileInputStream("c:/aaa.doc");
in.read(bytes);
ret=new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
in.close();
}
catch (FileNotFoundException e)
... {
e.printStackTrace();
}
catch (java.io.IOException ex)
... {
ex.printStackTrace();
}
out.println(ret);
byte [] bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);
java.io.ByteArrayInputStream inStream = new java.io.ByteArrayInputStream(bytes);
byte [] buffer = new byte [ 1444 ];
FileOutputStream fs = new FileOutputStream( " d:/aaa.doc " );
int bytesum = 0 ;
int byteread = 0 ;
while ((byteread = inStream.read(buffer)) !=- 1 )
... {
bytesum+=byteread;
fs.write(buffer,0,byteread);
}
%>
14。把文件编码成base64字符串
<%
String ret = new String();
byte [] bytes = new byte [ 1024 ];
String aa = " aaaa " ;
bytes = aa.getBytes();
ret = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法
bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);
aa = new String(bytes);
out.println(aa);
%>
String ret = new String();
byte [] bytes = new byte [ 1024 ];
String aa = " aaaa " ;
bytes = aa.getBytes();
ret = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法
bytes = new sun.misc.BASE64Decoder().decodeBuffer(ret);
aa = new String(bytes);
out.println(aa);
%>