1.递归遍历一个目录,获取所有文件名(也可以取到绝对路径)

public static void traverse(String filePath, List<String> files) {
if (StringUtils.isBlank(filePath)){
return ;
}
try{
File superFile = new File(filePath);
if (superFile.exists()) {
File[] fileList = superFile.listFiles();
if (null != files && fileList.length > 0) {
for (File file : fileList) {
// 还是文件夹
if (file.isDirectory()) {
traverse(file.getAbsolutePath(),files);
} else {
files.add(file.getName()); //文件名
//files.add(file.getAbsolutePath()); //文件绝对路径
}
}
}
}
}catch (Exception e){
//log
}
return ;
}

2.获取文件大小,自动用K、M、G表示。

public static String parseSize(long length){
StringBuilder size = new StringBuilder();
DecimalFormat format = new DecimalFormat("###.0");
if (length < 1024) {
size.append((int) length).append(" B");
}else if (length >= 1024 && length < 1024 * 1024) {
double i = (length / (1024.0));
size.append(format.format(i)).append(" K");
}else if (length >= 1024 * 1024 && length < 1024 * 1024 * 1024) {
double i = (length / (1024.0 * 1024.0));
size.append(format.format(i)).append(" M");
}else if (length >= 1024 * 1024 * 1024) {
double i = (length / (1024.0 * 1024.0 * 1024.0));
size.append(format.format(i)).append(" G");
}
return size.toString();
}

3.Multipart文件转存为本地的File。

public static void multipartToFile(MultipartFile file, String fileFolder){
FileOutputStream outputStream = null;
try {
File newFileFolder = new File(fileFolder);
if (!newFileFolder.exists()) {
newFileFolder.mkdirs();
} fileFolder = newFileFolder.getAbsolutePath() + File.separator + file.getOriginalFilename(); outputStream = new FileOutputStream(new File(fileFolder));
IOUtils.copy(file.getInputStream(), outputStream);
} catch (Exception e) {
// log
} finally {
IOUtils.closeQuietly(outputStream);
}
}

4.清理指定目录下一天前(时间可以指定)的文件。

public static void cleanDirectory(String dir, long ttl) {
File file = new File(dir);
String[] subDirNames = file.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isDirectory();
}
});
if (subDirNames != null) {
for (String name : subDirNames) {
File subDir = new File(dir + File.separator + name);
if (System.currentTimeMillis() - subDir.lastModified() > ttl) {
try {
FileUtils.deleteDirectory(subDir); //import org.apache.commons.io.FileUtils;
} catch (Exception e) {
// log
}
}
}
}
}

5.把字符串存入指定文件。

public static void strToFile(String content, File outFile) {
OutputStream os = null;
try {
File parent = outFile.getParentFile();
if (!parent.exists()) {
parent.mkdirs();
}
if (!outFile.exists()) {
outFile.createNewFile();
}
os = new FileOutputStream(outFile);
IOUtils.write(content, os);
} catch (Exception e) {
// log
} finally {
IOUtils.closeQuietly(os);
}
}

FIle类常用工具方法整理(持续更新)的更多相关文章

  1. File类常用的方法与字节流类方法简介

    File类常用的方法 获取功能的方法 public String getAbsolutePath() :返回此File的绝对路径名字符串. public String getPath() :将此Fil ...

  2. JavaScript 深入学习及常用工具方法整理 ---- 01.浮点数

    在JavaScript中是不区分整数值和浮点数值的,其中所有的数字均用浮点数值表示.JavaScript采用IEEE 754标准(有兴趣可以浏览网络规范分类下的IEEE 754标准,需要原文件请在留言 ...

  3. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  4. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

  5. C#File类常用的文件操作方法(创建、移动、删除、复制等)

    File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...

  6. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  7. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

  8. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  9. jQuery常用工具方法

    前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法 ...

随机推荐

  1. 【概率论】hdu5985 Lucky Coins

    kill(i,j)表示第i种硬币在第j轮或者之前就死光的概率,它等于(1-pi^j)^num(i) rev(i,j)表示第i种硬币在j轮后仍然存活的概率,它等于1-kill(i,j) 然后对每种硬币i ...

  2. 【分类讨论】Codeforces Round #407 (Div. 2) D. Weird journey

    考虑这个二元组中有一者是自环,则必然合法. 考虑这两条边都不是自环,如果它们不相邻,则不合法,否则合法. 坑的情况是,如果它是一张完整的图+一些离散的点,则会有解,不要因为图不连通,就误判成无解. # ...

  3. 【容斥原理】【分解质因数】poj1091 跳蚤

    题意转化为求一个线性组合a1*x1+a2*x2+...+an*xn+m*xn+1=1在什么时候可以有解.(ai在1~m的范围内任取) 易得当且仅当gcd(a1,a2,...,an)=1时可能有解. 然 ...

  4. Redis 真得那么好用吗?

    不管你是从事Python.Java.Go.PHP.Ruby等等......Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了set value.GetVal ...

  5. Java高级架构师(一)第39节:Nginx的Rewrite模块

  6. CountDownLatch使用场景及分析 并发测试

    原文:https://www.cnblogs.com/bqcoder/p/6089101.html CountDownLatch使用场景及分析   JDk1.5提供了一个非常有用的包,Concurre ...

  7. 【spring cloud】spring cloud中启动eureka集群时候,发生端口已经绑定的报错The Tomcat connector configured to listen on port 8000 failed to start. The port may already be in use or the connector may be misconfigured.

    在分别设置 进行微服务eureka集群启动时候,执行命令行启动jar包时候,报错前面一个端口8000已经被使用,而我这里启动的配置文件中端口号是8001,怎么会导致端口冲突呢?? 但是报错我的端口冲突 ...

  8. python对于0x01的处理

    对于python脚本,可以使用: .replace('\x01', '') 对于vim工具,可以使用: :%s/\%x01/ /g

  9. XmlRpc with C#/Java【转】

    最近看了几个项目都是用xmlrpc协作完成的,就做了几个测试客户端和服务器端和大家一起分享.希望能对入门的同学有帮助 关于xmlrpc的介绍和规范参考http://www.xml-rpc.net/ 下 ...

  10. python Parent.__init()和super(Child, self)的区别

    super函数做的事情 def supper(cls, inst): mro = inst.__class__.mro() return mro[mro.index(cls) + 1] inst生成父 ...