java实现对文件的删除、剪切、移动和创建

 
package  OALogic.sql.data;    
  
import 
 java.io.*;    
  
public 
  
class 
 FileOperate {    
    
public 
 FileOperate() {    
   }    
      
    
public 
  
static 
  
void 
 main(String args[]){   
       newFolder( 
"D:/100" 
);   
  
   }   
  
    
/**     
     * 新建目录     
     * @param folderPath String 如 c:/fqf     
     * @return boolean     
     */      
    
public 
  
static 
  
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 
  
static 
  
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 
  
static 
  
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 
  
static 
  
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 
  
static 
  
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 
  
static 
  
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 
  
static 
  
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 
  
static 
  
void 
 moveFile(String oldPath, String newPath) {    
       copyFile(oldPath, newPath);    
       delFile(oldPath);    
  
   }    
  
    
/**     
     * 移动文件到指定目录     
     * @param oldPath String 如:c:/fqf.txt     
     * @param newPath String 如:d:/fqf.txt     
     */      
    
public 
  
static 
  
void 
 moveFolder(String oldPath, String newPath) {    
       copyFolder(oldPath, newPath);    
       delFolder(oldPath);    
  
   }    
}   
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值