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. 基于Android 4.4 开发的多窗体系统 开放源代码

    Hi, 这是我基于Android 4.4开发的多窗体系统,还有非常多不足,还请多多不吝赐教啊,代码已经所有开源. 视频地址 源代码地址 Done: 1. APP以窗体化显示 在 PhoneWindow ...

  2. poj1742 Coins(多重背包+单调队列优化)

    /* 这题卡常数.... 二进制优化或者单调队列会被卡 必须+上个特判才能过QAQ 单调队列维护之前的钱数有几个能拼出来的 循环的时候以钱数为步长 如果队列超过c[i]就说明队头的不能再用了 拿出来 ...

  3. 10.3 noip模拟试题

    希望[题目描述]网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈,“前进栈”.“后退栈”.这里你需要实现以下几个功能:BACK: 如果“后退栈”为空则忽略此命令. 否则将当前两面压入“ ...

  4. JSP自定义标签库

    总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...

  5. php+支付宝整合

    CREATE TABLE IF NOT EXISTS `alipay_order` ( `id` ) unsigned NOT NULL auto_increment, `orderid` ) NOT ...

  6. oracle命令的缩写原型单词方便记忆总结

    $ORACLE_HOME/bin下的utilities解释 Binary              First Available        Description adapters        ...

  7. 关于cocoapods和swift中使用oc第三方

    mac 系统自带ruby,使用cocoapods,直接安装cocoapods就行 终端:$ sudo gem install cocoapods {安装较慢是因为有墙,查看ruby镜像列表:$ gem ...

  8. OC中的SEL解析

    OC中的SEL对象即selector对象,用来保存一个方法的地址.下面通过一个Demo来解析SEL的原理.创建一个Person类,Person.h中: #import <Foundation/F ...

  9. 使用charles proxy for Mac来抓取手机App的网络包

    之前做Web项目的时候,经常会使用Fiddler(Windows下).Charles Proxy(Mac下)来抓包,调试一些东西:现在搞Android App开发,有时候也需要分析手机App的网络请求 ...

  10. iOS 里面如何使用第三方应用程序打开自己的文件,调用wps其他应用打开当前应用里面的的ppt doc xls

    我们的自己的应用里面经常涉及的要打开ppt doc,这样的功能,以前总以为iOS沙盒封闭化,不可能实现,后来终于解决了 使用 UIDocumentInteractionController 来解决这一 ...