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

|