Java对各种文件的操作详解 |
|
时间:2006-5-15 |
<script type="text/javascript">
</script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-8907903490048952&dt=1151053741468&lmt=1147677889&prev_fmts=728x90_as%2C160x90_0ads_al&format=468x60_as&output=html&url=http%3A%2F%2Fwww.zebcn.com%2Fhtml%2F200605%2F3336.html&color_bg=EDF0F5&color_text=000000&color_link=DE7008&color_url=666666&color_border=EDF0F5&ad_type=text_image&ref=http%3A%2F%2Fwww.zebcn.com%2Fhtml%2F75%2F20.html&cc=118&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency"> 新建目录<%@ page contentType="text/html;charset=gb2312"%> <% //String URL = request.getRequestURI(); String filePath="C://测试//"; filePath=filePath.toString();//中文转换 java.io.File myFilePath=new java.io.File(filePath); if(!myFilePath.exists()) myFilePath.mkdir(); %> 新建文件 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.io.*" %> <% String filePath="c:/测试/newFile.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 content ="这是测试数据"; String strContent = content.toString(); myFile.println(strContent); resultFile.close(); %> 删除文件<%@ page contentType="text/html;charset=gb2312"%> <% String filePath="c://测试//newFile.txt"; filePath=filePath.toString(); java.io.File myDelFile=new java.io.File(filePath); if(myDelFile.exists()) { myDelFile.delete(); out.println(filePath+"删除成功!!!"); } else { out.println(filePath+"该文件不存在"); } %> 文件拷贝<%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.io.*" %> <% int bytesum=0; int byteread=0; //file:读到流中 InputStream inStream=new FileInputStream("c://测试//newFile.txt"); FileOutputStream fs=new FileOutputStream( "c://测试//copyFile.txt"); byte[] buffer =new byte[1444]; int length; while ((byteread=inStream.read(buffer))!=-1) { out.println("<DT><B>"+byteread+"</B></DT>"); bytesum+=byteread; out.println(bytesum); fs.write(buffer,0,byteread); } inStream.close(); %> 整个文件夹拷贝 <%@ 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 contentType="text/html; charset=gb2312"%> <%@ page import="java.io.*" %> <% String fileName = "newFile.txt".toString(); //读到流中 InputStream inStream=new FileInputStream("c://测试//newFile.txt"); //设置输出的格式 response.reset(); response.setContentType("text/plain"); response.addHeader("Content-Disposition","attachment; filename=/"" + fileName + "/""); //循环取出流中的数据 byte[] b = new byte[100]; int len; ServletOutputStream outStream = response.getOutputStream(); while((len=inStream.read(b)) >0) outStream.write(b,0,len); outStream.flush(); outStream.close(); inStream.close(); %> 数据库字段中的文件下载 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*,java.sql.*,java.io.*"%> <% String id = request.getParameter("id"); if(id==null) { throw new Exception ("没有找到图片"); } else { try { com.gzrealmap.lib.jdbc.JDBCUtil SqlBean= com.gzrealmap.lib.jdbc.JDBCUtil.getInstance(); SqlBean.connect(); String sql = "select * from innernews where id = '"+79+"'"; ResultSet rs = SqlBean.queryforUpdate(sql); rs.next(); //String fileNamedb = rs.getString("imageName"); String file= rs.getString("acc"); //String fileName = new String(fileNamedb.getBytes(),"iso-8859-1"); String fileName = "a.jpg"; response.setHeader("Content-Disposition", "inline; filename=/"" + fileName + "/""); String filter = fileName.substring(fileName.lastIndexOf(".")); if(filter.equals(".txt")) { response.setContentType("text/plain"); } else if(filter.equals(".doc")||filter.equals(".dot")) { response.setContentType("application/msword"); } else { response.setContentType("image/jpeg;charset=GB2312"); } ServletOutputStream o = response.getOutputStream(); //o.write(file); out.println(file); //o.flush(); //o.close(); SqlBean.disconnect(); } catch(Exception ex) { out.println(ex.getMessage()); } } %> 把网页保存成文件<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.text.*,java.util.*,java.net.*,java.io.*"%> <% 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())); String theFileName = "c://测试//163.html"; stdOut = new PrintWriter(new BufferedWriter(new FileWriter(theFileName.toString()))); } 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 contentType="text/html;charset=gb2312"%> <%@ 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(); /** String theFileName = "c:/测试/logo.gif"; theFileName = theFileName.toString(); File myFilePath=new File(theFileName); if(!myFilePath.exists()) myFilePath.createNewFile(); **/ FileOutputStream fs=new FileOutputStream("c:/测试/logo2.gif"); byte[] buffer =new byte[1444]; 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 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(); %> 对word文档的处理(上传与下载)<%@ page contentType="application/msword" %> <!-- 以上这行设定本网页为excel格式的网页 --> <% response.setHeader("Content-disposition","inline; filename=test1.doc"); //线上浏览方式 // response.setHeader("Content-disposition","attachment; filename=test1.doc");//下载方式 //以上这行设定传送到前端浏览器时的档名为test1.doc //就是靠这一行,让前端浏览器以为接收到一个word档 %> //然后输出动态内容就可以得到一个word文档了 1,打开: 1)文件头上加:<%@ page contentType="application/msword"%> xml文件里: <mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping> 2)可以用js,以下代码来自引用: <%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%> <HTML> <script> var wrd=new ActiveXObject("Word.Application") wrd.visible=true alert("您的"+wrd.Application.Caption+"安装路径为:/n"+wrd.Application.Path+"/n版本号是:"+wrd.Application.version+"/n注册使用者是:"+wrd.Application.UserName) wrd.Documents.Add() //wrd.Documents.Open("c://exam.doc") wrd.Selection.TypeText("This is some text.") wrd.Application.Activate() wrd.ActiveDocument.SaveAs("c://exam111.doc") wrd=null </script> </HTML> 2,下载: <%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%> <%// 得到文件名字和路径 String filename = "jsp.doc"; String filepath = "C://"; // 设置响应头和下载保存的文件名 response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition","attachment; filename=/"" + filename + "/""); // 打开指定文件的流信息 java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename); //FileOutputStream out = new FileOutputStream(filepath+"测试//" + filename); // 写出流信息 int i; while ((i=fileInputStream.read()) != -1) { out.write(i); } fileInputStream.close(); out.close(); %> |