FileUtils
- 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的更多相关文章
- Java程序员的日常—— FileUtils工具类的使用
package cn.xingoo.learn.commons; import org.apache.commons.io.FileUtils; import org.apache.commons.i ...
- cocos2dx的android版FileUtils的坑
cocos2dx3.13,FileUtils-android.cpp中可以看到: FileUtils::Status FileUtilsAndroid::getContents(const std:: ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- 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 ...
- 文件相关操作工具类——FileUtils.java
文件相关操作的工具类,创建文件.删除文件.删除目录.复制.移动文件.获取文件路径.获取目录下文件个数等,满足大多数系统需求. 源码如下:(点击下载 FileUtils.java) import jav ...
- 应用apache FileUtils把网页另存为文件
public static void foo() { try { URL url = new URL("http://www.webservicex.net/globalweather.as ...
- 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 ...
- apache的FileUtils方法大全
FileUtils 获取系统的临时目录路径:getTempDirectoryPath() [java] view plaincopyprint? public static String getTem ...
- FileUtils类介绍
Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...
随机推荐
- poj2406--Power Strings(KMP求最小循环节)
Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 33178 Accepted: 13792 D ...
- [AngularJS] Sane, scalable Angular apps are tricky, but not impossible.
Read fromhttps://medium.com/@bluepnume/sane-scalable-angular-apps-are-tricky-but-not-impossible-less ...
- a标签的背景图在ie8下显示问题
今天遇到个小问题,纠结了很久,分享下 a标签添加背景图,需要给a添加display:block样式 但是在ie8下还是不能显示背景图,开始以为是由于a标签为空造成的,试了下添加内容也没用,后来注意到一 ...
- HTML5移动开发中的input输入框类型
HTML5规范引入了许多新的input输入框类型 在HTML5移动开发中,通过这些新的输入框类型来显示定制后的键盘布局,用户体验更好,更容易填写各种表单 本文中,实测手机为肾4S与米4 数字类型num ...
- java_Collection 类集
大体概念
- Android四大组件之一:ContentProvider(内容提供者)
Android中还提供了名为ContentProvider(内容提供者),可以向其他应用提供数据,但不常用,除非是同一公司开发的App,可以向不同应用提供数据.虽然为Android的四大组件之一,但用 ...
- IDEA 13》》》14破解
更新IDEA 15注册方式 http://15.idea.lanyus.com/ ------------------------------------------------ 之前的已不能用,下面 ...
- Nagios新添加的hosts和services有时显示,有时不显示问题解决
在nagios配置文件hosts.cfg和services.cfg中添加了新服务器和服务列表,重启nagios服务后刷新监控页面,新添加的服务器和服务列表有时能显示出来,有时又显示不出来. 解决方法: ...
- SQL SERVER 中PatIndex的用法个人理解
一般用法:PatIndex('%AAA%',‘BBBBBBBB’) 上句的意思是查找AAA在BBBBBBBB中的位置,从1开始计算,如果没有的话则返回0 其中%AAA%的用法和 SQL语句中like的 ...
- iOS将产品进行多语言发布,开发
多语言就是程序的国际化.在Xcode中要实现程序的国际化,只需要简单配置,并修改相应的字符串键值对即可. 应用程序的国际化主要包括三个方面:A.程序名称国际化:B.程序内容国际化:C.程序资源国际化 ...