import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import org.apache.log4j.Logger; public class FileUtils { /**
* 读取一个文件夹下所有文件的绝对路径。忽略此文件夹下的问价夹
*
* @param absFolderPath
* 文件夹绝对路径
* @return List<String>
*/
public static List<String> readFilePath(String absFolderPath) {
List<String> paths = new ArrayList<String>();
File file = new File(absFolderPath);
// 文件夹
if (file.isDirectory()) {
for (File childFile : file.listFiles()) {
// 不是文件夹并且没有被操作
if (!childFile.isDirectory()) {
// 路径通过"/"手动创建,避免因window下出现反斜杠\ 路径的情况
paths.add(absFolderPath + "/" + childFile.getName());
}
}
}
return paths;
} /**
* 通过文件的绝对路径删除文件,如果传入是文件夹路径,忽略并返回false
*
* @param absFilePath
* 文件绝对路径
* @return boolean
*/
public static boolean deleteFile(String absFilePath) {
boolean result = false;
File file = new File(absFilePath);
if (!file.isDirectory()) {
file.delete();
result = true;
}
return result;
} /**
* 删除问价夹下所有文件
*
* @param absFolderPath
* @return boolean
*/
public static boolean deleteAllFileInTheFolder(String absFolderPath) {
boolean result = true;
for (String filePath : FileDealUtil.readFilePath(absFolderPath)) {
result = result && FileDealUtil.deleteFile(filePath);
}
return result;
} /**
* 将文件移动到指定问价夹下
*
* @param filePath
* 文件路径
* @param folderPath
* 文件夹路径
* @return String 移动后文件路径,filePath为文件夹或folderPath为文件或文件正在被其他进程打开无法移动返回null */
public static String moveFile(String filePath, String folderPath) {
String path = null; File file = new File(filePath);
if (file.isDirectory())
return path;
File folder = new File(folderPath);
if (!folder.exists()) {
folder.mkdirs();
}
if (!folder.isDirectory())
return path; File nowFile = new File(folderPath + "/" + file.getName());
if (nowFile.exists())
nowFile.delete();
if (file.renameTo(new File(folder, file.getName())))
path = folderPath + "/" + file.getName();
return path;
} /**
* 得到文件输入流
*
* @param path
* 绝对路径
* @return InputStream */
public static InputStream getFile(String path) {
// First try to read from the file system ...
File file = new File(path);
if (file.exists() && file.canRead()) {
try {
return new FileInputStream(file);
} catch (FileNotFoundException e) {
// continue
return null;
}
}
return null;
} /**
* 判断文件夹是否存在 void
*
*/
public static boolean existFolder(String folderPath) {
File file = new File(folderPath);
return file.exists();
} /**
* 创建文件夹
*
* @param folderPath
* void
*/
public static void creatFolder(String folderPath) {
if (!existFolder(folderPath)) {
File file = new File(folderPath);
file.mkdirs();
}
} /**
* 获取文件大小 如果文件存在并且不是目录,返回文件大小,如果文件不存在或者是目录,返回0
*
* @return Long 单位bytes
*/
public static Long getFileSize(String filePath) {
File file = new File(filePath);
if (file.exists() && !file.isDirectory()) {
return file.length();
} else {
return 0L;
}
} /**
* 从文件路径中分离出文件名
*
* @param filePath
* @return String
*/
public static String splitFileName(String filePath) {
return filePath.substring(filePath.lastIndexOf("/") + 1);
} /**
*
* @param filePath
* @param inputStream
* @return boolean
*/
public static boolean writeFile(String filePath, InputStream inputStream) {
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(filePath); int bytesRead = 0;
byte[] buffer = new byte[2048];
while ((bytesRead = inputStream.read(buffer, 0, 2048)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} finally {
try {
outputStream.close();
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

FileUtils的更多相关文章

  1. Java程序员的日常—— FileUtils工具类的使用

    package cn.xingoo.learn.commons; import org.apache.commons.io.FileUtils; import org.apache.commons.i ...

  2. cocos2dx的android版FileUtils的坑

    cocos2dx3.13,FileUtils-android.cpp中可以看到: FileUtils::Status FileUtilsAndroid::getContents(const std:: ...

  3. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

  4. Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.

    今天执行:autoreconf -fvi的时候出现如下错误: autoreconf: Entering directory `.' autoreconf: configure.in: not usin ...

  5. 文件相关操作工具类——FileUtils.java

    文件相关操作的工具类,创建文件.删除文件.删除目录.复制.移动文件.获取文件路径.获取目录下文件个数等,满足大多数系统需求. 源码如下:(点击下载 FileUtils.java) import jav ...

  6. 应用apache FileUtils把网页另存为文件

    public static void foo() { try { URL url = new URL("http://www.webservicex.net/globalweather.as ...

  7. Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils

    1.错误叙述性说明 警告: Could not create JarEntryRevision for [jar:file:/D:/MyEclipse/apache-tomcat-7.0.53/web ...

  8. apache的FileUtils方法大全

    FileUtils 获取系统的临时目录路径:getTempDirectoryPath() [java] view plaincopyprint? public static String getTem ...

  9. FileUtils类介绍

    Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...

随机推荐

  1. Delphi中WebBrowser拦截网页Alert对话框消息(转)

    interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, O ...

  2. 高级性能调试手段(oprofile+gprofile)+内核追踪手段:LTT

    http://blog.csdn.net/wlsfling/article/details/5876134http://www.lenky.info/archives/2012/03/1371http ...

  3. Qt的皮肤设计(Style Sheet)

      Qt的皮肤设计,也可以说是对Qt应用程序的界面美化,Qt使用了一种类CSS的样式规则QSS. 一.Style Sheet的应用 1.直接在程序代码中设置样式,利用setStyleSheet()方法 ...

  4. UITableView beginUpdate和endUpdate使用的前提

    转载地址:http://blog.csdn.net/vieri_ch/article/details/46893023 UITableView有两个方法,用于单元格动画变化的方法,beginUpdat ...

  5. xslt中的常用函数

    在我们制作标签的时候经常要使用到一些xslt的知识,以下整理了常用的xslt函数供大家使用. 常用字符串函数: contains('Welcome','e'):字符串包含,包含:true,不包含:fa ...

  6. LINUX启动顺序

    Linux 启动顺序: 1. BIOS自检 (服务器硬件启动的第一步,坑定的啦) 2. 运行系统内核并检测硬件(这个是看系统了,redhat等相关版本是通过/boot/vm进行启动 vmlinuz) ...

  7. (转)webstorm快捷键

    Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) ...

  8. html px em pt长度单位(像素 相对长度 点)知识(转)

    html px em pt单位区 一.PX\EM\PT单位介绍 px单位名称为像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐:em单位名称为相对长度单位.相对于当前对象内文本的 ...

  9. js自定义方法名

    自定义方法名: <script language="javascript" type="text/javascript">window.onload ...

  10. Dictionary 总结

    foreach (KeyValuePair<int, string> kvp in myDictionary) {...} Dictionary<string, string> ...