java文件操作

package com.mis.inter.datainter.ereq;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.InputStream;

import java.io.PrintWriter;



public class CopyFile { 

   public CopyFile() { 

   } 



   /** 

     * 新建目录 

     * @param folderPath String 如 c:/fqf 

     * @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("新建目录操作出错"); 

           e.printStackTrace(); 

       } 

   } 



   /** 

     * 新建文件 

     * @param filePathAndName String 文件路径及名称 如c:/fqf.txt 

     * @param fileContent String 文件内容 

     * @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("新建文件操作出错"); 

           e.printStackTrace(); 



       } 



   } 



   /** 

     * 删除文件 

     * @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(); 



       } 

       catch (Exception e) { 

           System.out.println("删除文件操作出错"); 

           e.printStackTrace(); 



       } 



   } 



   /** 

     * 删除文件夹 

     * @param filePathAndName String 文件夹路径及名称 如c:/fqf 

     * @param fileContent String 

     * @return boolean 

     */ 

   public void delFolder(String folderPath) { 

       try { 

           delAllFile(folderPath); //删除完里面所有内容 

           String filePath = folderPath; 

           filePath = filePath.toString(); 

           java.io.File myFilePath = new java.io.File(filePath); 

           myFilePath.delete(); //删除空文件夹 



       } 

       catch (Exception e) { 

           System.out.println("删除文件夹操作出错"); 

           e.printStackTrace(); 



       } 



   } 



   /** 

     * 删除文件夹里面的所有文件 

     * @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]);//再删除空文件夹 

           } 

       } 

   } 



   /** 

     * 复制单个文件 

     * @param oldPath String 原文件路径 如:c:/fqf.txt 

     * @param newPath String 复制后路径 如: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()) { //文件存在时 

               InputStream inStream = new FileInputStream(oldPath); //读入原文件 

               FileOutputStream fs = new FileOutputStream(newPath); 

               byte[] buffer = new byte[1444]; 

               int length; 

               while ( (byteread = inStream.read(buffer)) != -1) { 

                   bytesum += byteread; //字节数 文件大小 

           

                   fs.write(buffer, 0, byteread); 

               } 

               inStream.close(); 

           } 

       } 

       catch (Exception e) { 

           System.out.println("复制单个文件操作出错"); 

           e.printStackTrace(); 



       } 



   } 



   /** 

     * 复制整个文件夹内容 

     * @param oldPath String 原文件路径 如:c:/fqf 

     * @param newPath String 复制后路径 如: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("复制整个文件夹内容操作出错"); 

           e.printStackTrace(); 



       } 



   } 



   /** 

     * 移动文件到指定目录 

     * @param oldPath String 如:c:/fqf.txt 

     * @param newPath String 如:d:/fqf.txt 

     */ 

   public void moveFile(String oldPath, String newPath) { 

       copyFile(oldPath, newPath); 

       delFile(oldPath); 



   } 



   /** 

     * 移动文件到指定目录 

     * @param oldPath String 如:c:/fqf.txt 

     * @param newPath String 如:d:/fqf.txt 

     */ 

   public void moveFolder(String oldPath, String newPath) { 

       copyFolder(oldPath, newPath); 

       delFolder(oldPath); 



   } 

  

// 拷贝文件

   private void copyFile2(String source, String dest) {

   try {

   File in = new File(source);

   File out = new File(dest);

   FileInputStream inFile = new FileInputStream(in);

   FileOutputStream outFile = new FileOutputStream(out);

   byte[] buffer = new byte[1024];

   int i = 0;

   while ((i = inFile.read(buffer)) != -1) {

   outFile.write(buffer, 0, i);

   }//end while

   inFile.close();

   outFile.close();

   }//end try

   catch (Exception e) {



   }//end catch

   }//end copyFile

   public static void main(String[] args) {

	    CopyFile file = new CopyFile();

//	    file.newFolder("newFolder22222");

	    file.copyFile("d:\\test.xls","d:\\cd\\te.xls");

	   }

}

 

  

你可能感兴趣的:(java)