Java文件操作

[align=left]写了个Java操作文件的简单例子,希望给需要帮助的兄弟提供点儿帮助,同时也希望大家给予批评指正。
文件操作类,代码如下:
package org.coolyongzi;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;


public class FileTools {
private static final String SPECIAL_FILE_STYLE_PICTURECACHE = "Thumbs.db";
public static final Logger logger = LogManager.getLogger(FileTools.class);

public FileTools()
{

}
/*
* @discription:Delete a folder
* @param:dirPath String
* @return boolean
*/
public static boolean deleteDirectory(String dirPath,boolean deteDirRoot)
{
File parentFile = new File(dirPath);
File[] chirenFile = null;
if(parentFile.exists() && parentFile.isDirectory())
{
chirenFile = parentFile.listFiles();
for (int i = 0; i < chirenFile.length; i++) {
if(!chirenFile[i].isDirectory())
{
chirenFile[i].delete();
}
else
{
deleteDirectory(chirenFile[i].getAbsolutePath(),true);
chirenFile[i].delete();
}
}
if(deteDirRoot)
{
parentFile.delete();
}

return true;
}
else
{
FileTools.logger.error("The Floder Is Not Exist!");
return false;
}
}

/*
* @discription:Copy Folder
* @param:sourceFilePath String,targetFilePath String
* @return boolean
*/
public static boolean copyDirectory(String sourceFilePath,String targetFilePath) throws IOException
{
File sourceFile = new File(sourceFilePath);
File targetFile = new File(targetFilePath);

if(!targetFile.exists())
{
targetFile.mkdir();
}

File[] sourceChirenFile = null;
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
FileTools.logger.debug("Copy "+sourceFile.getName()+" Floder Start......");
if(sourceFile.exists() && sourceFile.isDirectory())
{
sourceChirenFile = sourceFile.listFiles();
for (int i = 0; i < sourceChirenFile.length; i++) {
File tempFile = null;

if(!sourceFilePath.endsWith(File.separator))
{
tempFile = new File(targetFilePath+File.separator+sourceChirenFile[i].getName());
}
else
{
tempFile = new File(targetFilePath+sourceChirenFile[i].getName());
}
if(!FileTools.SPECIAL_FILE_STYLE_PICTURECACHE.equalsIgnoreCase(sourceChirenFile[i].getName()))
{
if(!sourceChirenFile[i].isDirectory())
{
fileInputStream = new FileInputStream(sourceChirenFile[i]);
fileOutputStream = new FileOutputStream(tempFile);
byte[] b = new byte[1024];
FileTools.logger.debug("Copy "+sourceChirenFile[i].getName()+" File Start......");
while(fileInputStream.read(b)!=-1)
{
fileOutputStream.write(b);
}
FileTools.logger.debug("Copy "+sourceChirenFile[i].getName()+" File End!");
fileInputStream.close();
fileOutputStream.close();
}
else
{
copyDirectory(sourceFilePath+File.separator+sourceChirenFile[i].getName(),
targetFilePath+File.separator+sourceChirenFile[i].getName());
}
}

}
FileTools.logger.debug("Copy "+sourceFile.getName()+" Floder End!");
return true;
}
else
{
FileTools.logger.error("The Floder Is Not Exist!");
return false;
}
}
}

Junit测试类
package org.coolyongzi.testcase;

import java.io.IOException;

import org.coolyongzi.FileTools;

import junit.framework.TestCase;

public class FileToolsTest extends TestCase {

protected void setUp() throws Exception {
super.setUp();
}

protected void tearDown() throws Exception {
super.tearDown();
}

public void testDeleteDirectory()
{
FileTools.deleteDirectory("F:/复件 图片",false);
}

public void testCopyDirectory()
{
try {
FileTools.copyDirectory("F:/Game","F:/Game1");
} catch (IOException e) {
e.printStackTrace();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值