posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          文件操作大全(待修訂)

          Posted on 2009-07-05 18:23 Gavin.lee 閱讀(216) 評(píng)論(0)  編輯  收藏 所屬分類: Log && File Operate
          package com.Gavin.tools;

          import java.io.BufferedReader;
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.io.FileReader;
          import java.io.FileWriter;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.PrintWriter;

          public class FileOperate {
          //    public static void main(String[] args) throws IOException {
          //        FileOperate f = new FileOperate();
          //        // System.out.println(f.readFile("f:\\LinkFile.java"));
          //        f.fileIsNull("D:\\java\\", "ejb");
          //        // f.readLineFile("D:\\java\\","TestFile.txt");
          //        // System.out.println(f.fileIsNull("f:\\","122.txt"));
          //        // f.readFolderByFile("F:\\Login"); //不區(qū)分大小寫
          //        // System.out.println(f.createAndDeleteFolder("ss","f:\\"));
          //        // System.out.println(f.createAndDeleteFile("f:\\ss\\","TestFile.dat"));
          //        // f.createAndDeleteFolder("1","D:\\java\\");
          //        String ss[] = new String[50]; // 定義對(duì)象數(shù)組
          //        for (int i = 0; i < ss.length; i++) {
          //            ss[i] = "信息技術(shù)和互聯(lián)網(wǎng)(計(jì)算機(jī)軟硬件,通訊) " + i;
          //        }
          //        f.writeFile("D:\\java\\", "TestFile.txt", ss);
          //
          //    }

              
          /**
               * 文件的寫入
               * 
               * 
          @param filePath(文件路徑)
               * 
          @param fileName(文件名)
               * 
          @param args[]
               * 
          @throws IOException
               
          */

              
          public void writeFile(String filePath, String fileName, String[] args)
                      
          throws IOException {
                  FileWriter fw 
          = new FileWriter(filePath + fileName);
                  PrintWriter out 
          = new PrintWriter(fw);
                  
          for (int i = 0; i < args.length; i++{
                      out.write(args[i]);
                      out.println();
                      
          // out.flush();
                  }

                  System.out.println(
          "寫入成功!");
                  fw.close();
                  out.close();
              }


              
          /**
               * 文件的寫入
               * 
               * 
          @param filePath(文件路徑)
               * 
          @param fileName(文件名)
               * 
          @param args
               * 
          @throws IOException
               
          */

              
          public void writeFile(String filePath, String fileName, String args)
                      
          throws IOException {
                  FileWriter fw 
          = new FileWriter(filePath + fileName);
                  fw.write(args);
                  fw.close();
              }


              
          /**
               * 創(chuàng)建與刪除文件
               * 
               * 
          @param filePath
               * 
          @param fileName
               * 
          @return 創(chuàng)建成功返回true
               * 
          @throws IOException
               
          */

              
          public boolean createAndDeleteFile(String filePath, String fileName)
                      
          throws IOException {
                  
          boolean result = false;
                  File file 
          = new File(filePath, fileName);
                  
          if (file.exists()) {
                      
          if (file.isFile()) {
                          file.delete();
                          result 
          = true;
                          System.out.println(
          "文件已經(jīng)刪除!");
                      }
           else {
                          System.out.println(
          "對(duì)不起,該路徑為目錄!");

                      }

                  }
           else {
                      file.createNewFile(); 
          // jdk5.0的新方法
                      result = true;
                      System.out.println(
          "文件已經(jīng)創(chuàng)建!");
                  }

                  
          return result;
              }


              
          /**
               * 創(chuàng)建和刪除目錄
               * 
               * 
          @param folderName
               * 
          @param filePath
               * 
          @return 刪除成功返回true
               
          */

              
          public boolean createAndDeleteFolder(String folderName, String filePath) {
                  
          boolean result = false;
                  
          try {
                      File file 
          = new File(filePath + folderName);
                      
          if (file.exists()) {
                          
          if (file.isDirectory()) {
                              file.delete();
                              System.out.println(
          "目錄已經(jīng)存在,已刪除!");
                              result 
          = true;
                          }
           else {
                              System.out.println(
          "對(duì)不起,該路徑為文件!");
                          }

                      }
           else {
                          file.mkdir();
                          System.out.println(
          "目錄不存在,已經(jīng)建立!");
                          result 
          = true;
                      }

                  }
           catch (Exception ex) {
                      result 
          = false;
                      System.out.println(
          "CreateAndDeleteFolder is error:" + ex);
                  }

                  
          return result;
              }


              
          /**
               * 輸出目錄中的所有文件及目錄名字
               * 
               * 
          @param filePath
               
          */

              
          public void readFolderByFile(String filePath) {
                  File file 
          = new File(filePath);
                  File[] tempFile 
          = file.listFiles();
                  
          for (int i = 0; i < tempFile.length; i++{
                      
          if (tempFile[i].isFile()) {
                          System.out.println(
          "File : " + tempFile[i].getName());
                      }

                      
          if (tempFile[i].isDirectory()) {
                          System.out.println(
          "Directory : " + tempFile[i].getName());
                      }

                  }

              }


              
          /**
               * 檢查文件中是否為一個(gè)空
               * 
               * 
          @param filePath
               * 
          @param fileName
               * 
          @return 為空返回true
               * 
          @throws IOException
               
          */

              
          public boolean fileIsNull(String filePath, String fileName)
                      
          throws IOException {
                  
          boolean result = false;
                  FileReader fr 
          = new FileReader(filePath + fileName);
                  
          if (fr.read() == -1{
                      result 
          = true;
                      System.out.println(fileName 
          + " 文件中沒(méi)有數(shù)據(jù)!");
                  }
           else {
                      System.out.println(fileName 
          + " 文件中有數(shù)據(jù)!");
                  }

                  fr.close();
                  
          return result;
              }


              
          /**
               * 讀取文件中的所有內(nèi)容
               * 
               * 
          @param filePath
               * 
          @param fileName
               * 
          @throws IOException
               
          */

              
          public void readAllFile(String filePath, String fileName)
                      
          throws IOException {
                  FileReader fr 
          = new FileReader(filePath + fileName);
                  
          // PrintWriter pr=new PrintWriter(fr);
                  
          // pr.print
                  int count = fr.read();
                  
          while (count != -1{
                      System.out.print((
          char) count);
                      count 
          = fr.read();
                      
          // System.out.println();
                      if (count == 13{
                          fr.skip(
          1);
                          System.out.print(
          "跳過(guò)!");
                      }

                  }

                  System.out.println();
                  fr.close();
              }


              
          /**
               * 一行一行的讀取文件中的數(shù)據(jù)
               * 
               * 
          @param filePath
               * 
          @param fileName
               * 
          @throws IOException
               
          */

              
          public void readLineFile(String filePath, String fileName)
                      
          throws IOException {
                  FileReader fr 
          = new FileReader(filePath + fileName);
                  BufferedReader br 
          = new BufferedReader(fr);
                  String line 
          = br.readLine();
                  
          while (line != null{
                      System.out.println(line);
                      line 
          = br.readLine();
                  }

                  br.close();
                  fr.close();
              }



              
          /**
               * 
          @see 新建目錄,通用性不好,只能建立一級(jí)
               * 
          @param folderPath
               *            String 如 c:/floder
               * 
          @return boolean
               
          */

              
          public void newFolder(String folderPath) {
                  
          try {
                      String filePath 
          = folderPath;
                      filePath 
          = filePath.toString();
                      java.io.File myFilePath 
          = new java.io.File(filePath);
                      
          if (!myFilePath.exists()) {
                          myFilePath.mkdir();
                      }

                  }
           catch (Exception e) {
                      System.out.println(
          "新建目錄操作出錯(cuò)");
                      e.printStackTrace();
                  }

              }

              
          public static void main(String args[]) {        
                  FileOperate fo 
          = new FileOperate();
                  fo.newFolder(
          "c:/test");
                  System.out.println(fo.getProjectRootPath());
              }

              
          /**
               * 
          @see 新建文件
               * 
          @param filePathAndName
               *            String 文件路徑及名稱 如c:/fqf.txt
               * 
          @param fileContent
               *            String 文件內(nèi)容
               * 
          @return boolean
               
          */

              
          public void newFile(String filePathAndName, String fileContent) {

                  
          try {
                      String filePath 
          = filePathAndName;
                      filePath 
          = filePath.toString();
                      File myFilePath 
          = new File(filePath);
                      
          if (!myFilePath.exists()) {
                          myFilePath.createNewFile();
                      }

                      FileWriter resultFile 
          = new FileWriter(myFilePath);
                      PrintWriter myFile 
          = new PrintWriter(resultFile);
                      String strContent 
          = fileContent;
                      myFile.println(strContent);
                      resultFile.close();

                  }
           catch (Exception e) {
                      System.out.println(
          "新建文件操作出錯(cuò)");
                      e.printStackTrace();

                  }

              }



              
          /**
               * 
          @see 刪除文件
               * 
          @param filePathAndName
               *            String 文件路徑及名稱 如c:/fqf.txt
               * 
          @param fileContent
               *            String
               * 
          @return boolean
               
          */

              
          public void delFile(String filePathAndName) {
                  
          try {
                      String filePath 
          = filePathAndName;
                      filePath 
          = filePath.toString();
                      java.io.File myDelFile 
          = new java.io.File(filePath);
                      myDelFile.delete();
                      System.out.println(myDelFile 
          + "\\文件存在,已刪除。");

                  }
           catch (Exception e) {
                      System.out.println(
          "刪除文件操作出錯(cuò)");
                      e.printStackTrace();

                  }


              }


              
          /**
               * 
          @see 刪除文件夾
               * 
          @param filePathAndName
               *            String 文件夾路徑及名稱 如c:/fqf
               * 
          @param fileContent
               *            String
               * 
          @return boolean
               
          */

              
          public void delFolder(String folderPath) {
                  
          try {
                      delAllFile(folderPath); 
          // 刪除完里面所有內(nèi)容
                      String filePath = folderPath;
                      filePath 
          = filePath.toString();
                      java.io.File myFilePath 
          = new java.io.File(filePath);
                      myFilePath.delete(); 
          // 刪除空文件夾

                  }
           catch (Exception e) {
                      System.out.println(
          "刪除文件夾操作出錯(cuò)");
                      e.printStackTrace();

                  }


              }


              
          /**
               * 
          @see 刪除文件夾里面的所有文件
               * 
          @param path
               *            String 文件夾路徑 如 c:/fqf
               
          */

              
          public void delAllFile(String path) {
                  File file 
          = new File(path);
                  
          if (!file.exists()) {
                      
          return;
                  }

                  
          if (!file.isDirectory()) {
                      
          return;
                  }

                  String[] tempList 
          = file.list();
                  File temp 
          = null;
                  
          for (int i = 0; i < tempList.length; i++{
                      
          if (path.endsWith(File.separator)) {
                          temp 
          = new File(path + tempList[i]);
                      }
           else {
                          temp 
          = new File(path + File.separator + tempList[i]);
                      }

                      
          if (temp.isFile()) {
                          temp.delete();
                      }

                      
          if (temp.isDirectory()) {
                          delAllFile(path 
          + "/" + tempList[i]);// 先刪除文件夾里面的文件
                          delFolder(path + "/" + tempList[i]);// 再刪除空文件夾
                      }

                  }

              }


              
          /**
               * 
          @see 復(fù)制單個(gè)文件
               * 
          @param oldPath
               *            String 原文件路徑 如:c:/fqf.txt
               * 
          @param newPath
               *            String 復(fù)制后路徑 如:f:/fqf.txt
               * 
          @return boolean
               
          */

              
          public void copyFile(String oldPath, String newPath) {
                  
          try {
                      
          int bytesum = 0;
                      
          int byteread = 0;
                      File oldfile 
          = new File(oldPath);
                      
          if (oldfile.exists()) // 文件存在時(shí)
                          InputStream inStream = new FileInputStream(oldPath); // 讀入原文件
                          FileOutputStream fs = new FileOutputStream(newPath);
                          
          byte[] buffer = new byte[1444];
                          
          // int length = 0;
                          while ((byteread = inStream.read(buffer)) != -1{
                              bytesum 
          += byteread; // 字節(jié)數(shù) 文件大小
                              System.out.println(bytesum);
                              fs.write(buffer, 
          0, byteread);
                          }

                          inStream.close();
                      }

                  }
           catch (Exception e) {
                      System.out.println(
          "復(fù)制單個(gè)文件操作出錯(cuò)");
                      e.printStackTrace();

                  }


              }


              
          /**
               * 
          @see 復(fù)制整個(gè)文件夾內(nèi)容
               * 
          @param oldPath
               *            String 原文件路徑 如:c:/fqf
               * 
          @param newPath
               *            String 復(fù)制后路徑 如:f:/fqf/ff
               * 
          @return boolean
               
          */

              
          public void copyFolder(String oldPath, String newPath) {

                  
          try {
                      (
          new File(newPath)).mkdirs(); // 如果文件夾不存在 則建立新文件夾
                      File a = new File(oldPath);
                      String[] file 
          = a.list();
                      File temp 
          = null;
                      
          for (int i = 0; i < file.length; i++{
                          
          if (oldPath.endsWith(File.separator)) {
                              temp 
          = new File(oldPath + file[i]);
                          }
           else {
                              temp 
          = new File(oldPath + File.separator + file[i]);
                          }


                          
          if (temp.isFile()) {
                              FileInputStream input 
          = new FileInputStream(temp);
                              FileOutputStream output 
          = new FileOutputStream(newPath
                                      
          + "/" + (temp.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();
                          }

                          
          if (temp.isDirectory()) {// 如果是子文件夾
                              copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
                          }

                      }

                  }
           catch (Exception e) {
                      System.out.println(
          "復(fù)制整個(gè)文件夾內(nèi)容操作出錯(cuò)");
                      e.printStackTrace();

                  }


              }


              
          /**
               * 
          @see 移動(dòng)文件到指定目錄
               * 
          @param oldPath
               *            String 如:c:/fqf.txt
               * 
          @param newPath
               *            String 如:d:/fqf.txt
               
          */

              
          public void moveFile(String oldPath, String newPath) {
                  copyFile(oldPath, newPath);
                  delFile(oldPath);

              }


              
          /**
               * 移動(dòng)文件到指定目錄
               * 
          @param oldPath
               *            String 如:c:/fqf.txt
               * 
          @param newPath
               *            String 如:d:/fqf.txt
               
          */

              
          public void moveFolder(String oldPath, String newPath) {
                  copyFolder(oldPath, newPath);
                  delFolder(oldPath);

              }



              
          /**
               * 
          @see 獲得系統(tǒng)根目錄絕對(duì)路徑
               * 
          @return D:/MyWorkSpace/tools/WebRoot/
               
          */

              
          public String getProjectRootPath() {

                  String sysPath 
          = this.getClass().getResource("/").getPath();
                  
          // 對(duì)路徑進(jìn)行修改
                  sysPath = sysPath.substring(1, sysPath.length() - 16);
                  
          return sysPath;

              }

              
          }

          主站蜘蛛池模板: 舒兰市| 牙克石市| 固原市| 齐齐哈尔市| 潼南县| 莱阳市| 芮城县| 当雄县| 南丹县| 宜君县| 安仁县| 汉寿县| 开平市| 望城县| 定安县| 碌曲县| 乐山市| 甘谷县| 建瓯市| 遂昌县| 耿马| 彭山县| 绵竹市| 偃师市| 桦川县| 香港| 洞头县| 额尔古纳市| 和林格尔县| 成安县| 五指山市| 林西县| 远安县| 岐山县| 鹰潭市| 习水县| 石泉县| 尖扎县| 巨鹿县| 安泽县| 社旗县|