java 文件的各种操作

来源:互联网 发布:wdcp php版本升级 编辑:程序博客网 时间:2024/05/01 04:33

/**  
*   <p>Title:   文件的各种操作</p>  
*/  

package   common;  

import   java.io.*;  

public   class   FileOperate   {  
    public   FileOperate()   {  
    }  

    /**  
      *   新建目录  
      *   @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;   //字节数   文件大小  
                    System.out.println(bytesum);  
                    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);  

    }  
}

原创粉丝点击