文档章节

Nio 中的方法 - 文件上传

lemos
 lemos
发布于 2017/04/23 14:55
字数 245
阅读 53
收藏 0

原文 MINA

nio 基本用法

 

​​​​​​​java.nio.file.Files;

​​​​​​​

​​​​​​​createDirectory - 创建目录

示例

public void init() {
        try {
            Path rootLocation = Paths.get("/tmp");
            Files.createDirectory(rootLocation);
        } catch (IOException e) {
            throw new StorageException("Could not initialize storage", e);
        }
    }

 

copy - 复制文件到指定路径

示例

public void store(MultipartFile file) {
        try {
            if (file.isEmpty()) {
                throw new StorageException("Failed to store empty file " + file.getOriginalFilename());
            }

            Files.copy(file.getInputStream(), this.rootLocation.resolve(file.getOriginalFilename()));

        } catch (IOException e) {
            throw new StorageException("Failed to store file " + file.getOriginalFilename(), e);
        }
    }

其中,Path 的 resolve方法:根据文件名中解析得到完整Path。

 

walk - 遍历指定路径下的文件到流中(可以通过 json返回给页面)

public static java.util.stream.Stream<java.nio.file.Path> walk(java.nio.file.Path start,
                                                               int maxDepth,
                                                               @NotNull java.nio.file.FileVisitOption... options)
                                                       throws java.io.IOException

示例

public Stream<Path> loadAll() {
        try {

            return Files.walk(this.rootLocation, 1)
                    .filter(path -> !path.equals(this.rootLocation))
                    .map(this.rootLocation::relativize);

        } catch (IOException e) {
            throw new StorageException("Failed to read stored files", e);
        }

    }

其中,Stream的 filter 和 map方法:对Stream进行一些修正。

 

FileSystemUtils - springframework 的工具类,递归删除

public void deleteAll() {
    FileSystemUtils.deleteRecursively(rootLocation.toFile());
}

--

项目地址 http://git.oschina.net/lemosd/gs-uploading-files

© 著作权归作者所有

lemos
粉丝 8
博文 193
码字总数 93737
作品 0
芜湖
后端工程师
私信 提问
再springMVC中自定义文件上传处理解决与原spring中MultipartResolve冲突问题

    相信很多朋友再用springmvc时都遇见了一个问题,那就是自带的获取上传的东西太慢,而且不知道如何修改,其实不然,spring框架既然给我们开放了这个接口,就一定遵从了可扩展性的原则...

Visitors
2018/07/30
0
0
tomcat8里的nio模式下怎么上传图片并预览?

tomcat8里的nio模式下怎么上传图片并预览? 目前在tomcat7下是正常的,但是用tomcat8之后,文件上传并使用multipartFile.transferTo(destFile); 看着服务器上的文件已经写上去了。。但是界面...

上帝门口的排队
2015/10/08
258
4
Spring Boot + thymeleaf 实现文件上传下载

最近同事问我有没有有关于技术的电子书,我打开电脑上的小书库,但是邮件发给他太大了,公司又禁止用文件夹共享,于是花半天时间写了个小的文件上传程序,部署在自己的Linux机器上。 提供功能...

卡巴拉的树
2017/12/16
0
0
Java NIO系列教程(十六) Java NIO Files

原文地址 译者:章筱虎 java NIO Files类(java.nio.file.Files) 提供了操作文件的相关方法。本篇文章将会覆盖大多数常用的方法。Files类包含了很多方法,如果你需要的功能在文中没有提及,需...

章 筱虎
2018/01/23
0
0
JAVA NIO服务器间连续发送文件(本地测试版)

说在前面:给我的需求是实现从服务器A将大量文件(大概几十TB)发送到服务器B,在A服务器生成文件的MD5码,并在服务器B进行md5验证,验证通过保存。 我的实现思路: 将待上传的所有文件目录生...

枫叶还没红
2017/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
3分钟前
0
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
11分钟前
0
0
阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?

面试,如同玩一场饥饿游戏:既要对环境了然于胸,又要对自身心知肚明。发现一个好工作不容易,但成功应聘又会面临一系列的挑战。 为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别...

阿里云云栖社区
22分钟前
1
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
22分钟前
0
0
CentOS7中ESL服务部署记录

在CentOS7上部署价签系统,需要安装Mysql,Redis,emqtt,jdk。 1)Mysql,参考 2)Redis,参考 3)emqtt,参考 4)jdk,参考 在jdk的下载地址中,下载rpm文件,通过ftp上传到虚拟机后,通过...

莫在全
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部