java中对文件的操作(二)

类别:Java 点击:0 评论:0 推荐:

  java中对文件的操作(二)

  以前写过一个java中对文件的操作(http://dev.csdn.net/develop/article/19/19064.shtm),但是不全,就把剩下的一些加到评论里边了,但这次改版以后评论里的就看不到了,我就重新贴一下。

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

 

本文地址:http://com.8s8s.com/it/it16386.htm