太陽雨

          痛并快樂著

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            67 Posts :: 3 Stories :: 33 Comments :: 0 Trackbacks

          這里不討論有關apache的commons-io中的FileUtils,只是一些基本的對文件的操作的代碼,有時間會整理一個FileUtils的用法的文章。
          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 =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();
           
          %>  
          posted on 2008-06-19 11:40 小蟲旺福 閱讀(524) 評論(0)  編輯  收藏 所屬分類: j2se
          主站蜘蛛池模板: 宝丰县| 克东县| 博湖县| 年辖:市辖区| 漯河市| 来宾市| 平陆县| 华亭县| 翁牛特旗| 册亨县| 连云港市| 勐海县| 常州市| 内黄县| 安仁县| 永德县| 西安市| 东乡族自治县| 钟祥市| 布拖县| 扎囊县| 牟定县| 平度市| 宁化县| 新巴尔虎左旗| 丰顺县| 仙游县| 绥中县| 曲周县| 宜宾市| 确山县| 集安市| 大埔县| 平果县| 漳州市| 合山市| 五原县| 韶山市| 金昌市| 乌兰察布市| 军事|