sgwood 发表于 2013-2-5 00:25:46

Java对各种文件的操作详解(转)

java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。 新建目录<%@ 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 =newbyte;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.isFile()){   file.toString();   FileInputStream input=new FileInputStream(file);   FileOutputStream output=new FileOutputStream(url2+"/"+(file.getName()).toString());   byte[] b=new byte;    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;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.JDBCUtilSqlBean= 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 =newbyte;    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)文件头上加:<%@ pagecontentType="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=truealert ("您的"+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(); %>
页: [1]
查看完整版本: Java对各种文件的操作详解(转)