`
henry8088
  • 浏览: 163535 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

java通过IO操作文件

阅读更多

/** 
  *   类描述:JAVA实现文件操作,网上抄来的代码,大家根据自己的需要改改用吧。 
  *                   建议版主将这堆代码加入FAQ吧,对大家应该有用的。 
  *   @author   moumoulrc 
  *   @version   build   2005-2-21 
  *     
  */ 
import   java.io.*; 

public   class   FileOperate   { 

        public   FileOperate()   { 
        } 

        /** 
          *   新建目录 
          *   
          *   @param   folderPath   String   如   c:/moumoulr 
          *   
          *   @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:/moumoulrc.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:/moumoulrc.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:/moumoulrc 
          *   @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:/moumoulrc 
          */ 
        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:/moumoulrc.txt 
          *   @param   newPath   String   复制后路径   如:f:/moumo 
          *   @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 
          *   @param   newPath   String   如:d:/fqf 
          */ 
        public   void   moveFolder(   String   oldPath,   String   newPath   )   { 
                copyFolder(   oldPath,   newPath   ); 
                delFolder(   oldPath   ); 

        } 

        public   static   void   main(   String   args[]   )   { 
                FileOperate   a   =   new   FileOperate(); 
                //测试用代码...... 
        } 
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics