File--各种文件操作

File构造方法

使用递归删除函数deleteDir递归删除指定的目录
public static void deleteDir(String path)
{
	File file = new File(path);
	if (file.exists())
	{
		if (file.isDirectory())
		{
			File[] files = file.listFiles();
			for (File subFile : files)
			{
				if (subFile.isDirectory())
					deleteDir(subFile.getPath());
				else
					subFile.delete();
			}
		}
		file.delete();
	}
}

1、图片与byte[ ]转换

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.imageio.stream.FileImageInputStream;
import javax.imageio.stream.FileImageOutputStream;

public class FileImageTest {

	public static void main(String[] args) {
		//读取路径图片到byte[]
		FileImageTest obj=new FileImageTest();
		String url="D:\\id.jpg";
		byte[] a=obj.doImage2byteFun(url);
		System.out.println(a.length);
		System.out.println(a);
		//将byte[]数据写到图片路径
		obj.doByte2imageFun(a, "D:\\study\\id.jpg");
	}
	
	/**
	 * 图片到byte[]
	 * 使用了FileImageInputStream与ByteArrayOutputStream
	 * @param inFileUrl
	 * @return
	 */
	public byte[] doImage2byteFun(String inFileUrl) {
		byte[] data = null;
		FileImageInputStream input = null;
		try {
			input = new FileImageInputStream(new File(inFileUrl));
			ByteArrayOutputStream output = new ByteArrayOutputStream();
			byte[] buf = new byte[1024];
			int numBytesRead = 0;
			while ((numBytesRead = input.read(buf)) != -1) {
				output.write(buf, 0, numBytesRead);
			}
			data = output.toByteArray();
			output.close();
			input.close();
		} catch (FileNotFoundException ex1) {
			ex1.printStackTrace();
		} catch (IOException ex1) {
			ex1.printStackTrace();
		}
		return data;
	}
	/**
	 * byte[]到图片
	 * 使用了FileImageOutputStream
	 * @param data
	 * @param outFilePath
	 */
	public void doByte2imageFun(byte[] data, String outFilePath) {
		if (data.length < 3 || outFilePath.equals(""))
			return;
		try {
			FileImageOutputStream imageOutput = new FileImageOutputStream(
					new File(outFilePath));
			imageOutput.write(data, 0, data.length);
			imageOutput.close();
			System.out.println("Make Picture success,Please find image in "
					+ outFilePath);
		} catch (Exception ex) {
			System.out.println("Exception: " + ex);
			ex.printStackTrace();
		}
	}
}


2、递归删除文件(目录)
public class DeleteFileTest {
	
	public static void main(String[] args) {
		DeleteFileTest obj=new DeleteFileTest();
		//测试1:
		//String url="D:\\workspacewmf\\alibaba\\123";
		//obj.doFunOnA(url);
		//测试2:
		//String url="D:\\workspacewmf\\alibaba\\124";
		//obj.doFunOnB(url);
		//测试3:
		String url="D:\\workspacewmf\\alibaba\\128";
		obj.doFunOnC(url,"");
	}
	/**
	 * 删除根目录下的所有文件(仅删除文件,不删除目录)
	 * @param url
	 */
	public void doFunOnA(String filePath){
		System.out.println("路径名称:"+filePath);
		if(StringUtils.isNotBlank(filePath)){
			File soureFile=new File(filePath);
			if(soureFile.exists()){
				if(soureFile.isDirectory()){
					File[] arr=soureFile.listFiles();
					for (File file : arr) {
						if(file.isDirectory()){
							doFunOnA(file.getAbsolutePath());
						}else{
							System.out.println("第一处删除文件名称:"+file.getName());
							file.delete();
						}
					}
				}else{
					//不会执行else语句
				}
			}
		}
	}
	
	/**
	 * 删除根目录下的所有文件(删除根目录、根目录下的所有子文件和子目录)
	 * @param url
	 */
	public void doFunOnB(String filePath){
		System.out.println("路径名称:"+filePath);
		if(StringUtils.isNotBlank(filePath)){
			File soureFile=new File(filePath);
			if(soureFile.exists()){
				if(soureFile.isDirectory()){
					File[] arr=soureFile.listFiles();
					for (File file : arr) {
						if(file.isDirectory()){
							doFunOnB(file.getAbsolutePath());
						}else{
							System.out.println("第一处删除文件名称:"+file.getName());
							file.delete();
						}
					}
				}else{
					//不会执行else语句
				}
				System.out.println("删除目录名称:"+soureFile.getName());
				soureFile.delete();
			}
			
		}
	}
	
	/**
	 * 删除根目录下的所有文件(删除根目录下的所有子文件和子目录,但不删除根目录)
	 * @param url
	 */
	public void doFunOnC(String rootPath,String childPath){
		if(StringUtils.isNotBlank(rootPath)){
			File soureFile;
			if(StringUtils.isNotBlank(childPath)){
				soureFile=new File(childPath);
			}else{
				soureFile=new File(rootPath);
			}
			System.out.println("路径名称:"+soureFile.getAbsolutePath());
			if(soureFile.exists()){
				if(soureFile.isDirectory()){
					File[] arr=soureFile.listFiles();
					for (File file : arr) {
						if(file.isDirectory()){
							doFunOnC(rootPath,file.getAbsolutePath());
						}else{
							System.out.println("第一处删除文件名称:"+file.getName());
							file.delete();
						}
					}
				}else{
					//不会执行else语句
				}
			}
			if(!soureFile.getAbsolutePath().equals(rootPath)){
				System.out.println("删除目录名称:"+soureFile.getName());
				soureFile.delete();
			}else{
				System.out.println("根目录不删除,根目录名称:"+soureFile.getName());
			}
		}
	}
}

猜你喜欢

转载自franciswmf.iteye.com/blog/2338602