Java中对文件的操作

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();
%>

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();
%>

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();
%>

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(); 
%>

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();
}

}

%>  

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(); 
%>

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);
}

%>

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);
}

}

%>

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);
}

%>

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();
%>
 

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(); 
%>


 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());            
    }

  }
    
%>

 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);
     }
    
%>

 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);
%>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值