Java操作文件Util
package io.guangsoft.utils; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List; public class FilesUtil { //判断文件或文件夹是否存在
public static boolean isExit(String fileName) {
if (StringUtils.isNotEmpty(fileName)) {
File oldfile = new File(fileName);
if (oldfile.exists()) {
return true;
}
}
return false;
} //NIO方式复制文件
public static void copyFileNIO(File originFile, File destFile) {
File destDir = destFile.getParentFile();
if (!destDir.exists()) {
destDir.mkdirs();
}
FileInputStream fi = null;
FileOutputStream fo = null;
FileChannel in = null;
FileChannel out = null;
try {
fi = new FileInputStream(originFile);
fo = new FileOutputStream(destFile);
in = fi.getChannel();// 得到对应的文件通道
out = fo.getChannel();// 得到对应的文件通道
in.transferTo(0, in.size(), out);// 连接两个通道,并且从in通道读取,然后写入out通道
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fi.close();
in.close();
fo.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} //根据文件路径复制文件
public static void copyFile(String oldPath, String newPath) {
try {
File oldfile = new File(oldPath);
if (oldfile.exists()) {
File destFile = new File(newPath);
copyFileNIO(oldfile, destFile);
}
} catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
} } //根据文件路径删除文件
public static void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myDelFile = new File(filePath);
myDelFile.delete();
} catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();
} } //移动文件
public static void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
} //复制整个文件夹到指定目录
public static void copy(String src, String des) {
File file1 = new File(src);
String desDir = src.substring(src.lastIndexOf("\\") + 1, src.length());
File[] fs = file1.listFiles();
File file2 = new File(des + desDir);
if (!file2.exists()) {
file2.mkdirs();
}
if (fs != null) {
for (File f : fs) {
copyFile(f.getPath(), des + desDir + "\\" + f.getName()); // 调用文件拷贝的方法
}
}
} //递归删除目录下的所有文件及子目录下所有文件
public static boolean deleteDir(File dir) {
boolean ret = true;
if (dir.isDirectory()) {
String[] children = dir.list();
// 递归删除目录中的子目录
if (children != null) {
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
}
// 目录此时为空,可以删除
try{
ret = dir.delete();
if(!ret){ System.out.println("删除失败:"+dir.getName());
System.gc();//系统进行资源强制回收
ret = dir.delete();
}
}catch(Exception ex){
ret = false;
}finally{ }
return ret;
} //获取文件夹下所有文件路径
public static List<String> getFilePathList(String dirPath) {
List<String> filePathlist = new ArrayList<String>();
File dir = new File(dirPath);
File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) { // 判断是文件还是文件夹
getFilePathList(files[i].getAbsolutePath()); // 获取文件绝对路径
} else {
String strFileName = files[i].getAbsolutePath();
filePathlist.add(strFileName);
}
}
}
return filePathlist;
} }
Java操作文件Util的更多相关文章
- java操作文件的创建、删除、遍历
java操作文件的创建.删除.遍历: package test; import java.io.File; import java.io.IOException; import java.util.A ...
- Java操作文件夹的工具类
Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...
- Java操作文件
import java.io.File; import java.io.IOException; import java.nio.file.*; import java.nio.file.attrib ...
- java——操作文件
Java文件操作,共实现了文件复制(单个文件和多层目录文件),文件移动(单个文件和多层目录文件),文件删除(单个文件和多层目录文件),文件压缩 (单个文件),文件解压(单个文件),文件分割(将一个大文 ...
- java操作文件常用的 IO流对象
1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...
- Java操作文件那点事
刚开始学Java时候,一直搞不懂Java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己结合API来整理一下,有错的话请指正,也希 ...
- Java操作文件转码
package downloadTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...
- java操作文件流对象
所有流对象 InputStream 字节流 FileInputStream 字节流 专门读写非文本文件的 BufferedInputStream 高效流 OutPutS ...
- Java删除文件夹和文件
转载自:http://blog.163.com/wu_huiqiang@126/blog/static/3718162320091022103144516/ 以前在javaeye看到过关于Java操作 ...
随机推荐
- 【LeetCode每天一题】Reverse String
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
- Amazon RDS多区域高可用测试
最近在AWS上面需要部署一组多区域RDS集群,AWS的多区域简单理解就是RDS一主一从分别在当地的两个机房(两个区域).所以就有了下面各方面的测试. 我们需要测试什么? Primary挂掉时,Seco ...
- nvm管理node之后,安装npm包出现的问题
在学习Node.js连接MySQL时,使用nvm安装node6.10.0,在项目目录下npm install mysql 出问题. 在查询解决方法后,得知是因为配置文件有问题 package.json ...
- datetime函数和random.seed()函数的应用
一,datetime 在python中datetime是一个库是一个模块也是一个函数,作用很多,这里面只对其做简单的最常用的讲解. 首先返回系统时间 import datetime nowTime=d ...
- cocos2d 利用cocosStudio制作合图(plist与png)
- 在屏幕拖拽3D物体移动
3D物体的拖拽不同于2D的.因为3D物体有x,y,z当然.实际拖拽还是在XZ平面.只是多了几个转换 using UnityEngine; using System.Collections; publi ...
- python知识补足
1.class的init功能,初始化class,给出一些初始值 __init__可以理解成初始化class的变量,取自英文中initial 最初的意思.可以在运行时,给初始值附值, class Cal ...
- Mod制作第一个物品
在通过Mod制作第一个物品时需要 一下几个步骤: 创建一个物品 通常在创建这个物品类的时候会继承Item或者是Block父类(因为Mod中的物品都是这个两个类的子类),在给类中使用了this.setU ...
- CentOS下Docker安装
CentOS下Docker安装 1.安装: #sudo yum install docker 2.启动并加入开机启动: A.#sudo systemctl start docker B.#sudo s ...
- vm虚拟机出现Disk启动失败
https://jingyan.baidu.com/article/a501d80c0e45b8ec630f5ed6.html