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

本文提供了一套完整的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);   


 


   }   


}  



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值