File--各种文件操作

[b]File构造方法[/b]
[img]http://dl2.iteye.com/upload/attachment/0121/4166/0fce83eb-51ea-3271-851a-0f0acc37d6c5.jpg[/img]
[b]使用递归删除函数deleteDir递归删除指定的目录[/b]

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();
}
}

[b]1、图片与byte[ ]转换[/b]


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();
}
}
}


[b]2、递归删除文件(目录)[/b]

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());
}
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值