Java_File类和MultipartFile类
目录
一、前言
二、File类
2.1 定义
2.2 构造器
2.3 常用方法
三、MultipartFile类
3.1 定义
3.2 常用方法
四、File类和MultipartFile类的转换
4.1 Multipartfile转File类型
4.2 File转Multipartfile类型
4.3创建MultiPartfile需要的参数
一、前言
之前使用这两个类的时候,都是现用现找,没有太研究过,最近研究文档的上传和解析,觉得有必要对这两个类进行一下深入的学习,总结成文,做个笔记吧。
二、File类
2.1 定义
File类(文件类)是java.io包中的类,是以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。
File类代表磁盘中实际存在的文件和目录,这个文件或者目录的路径可以是绝对路径,也可以是相对路径。
2.2 构造器
1、根据路径名字符串转换为抽象路径名来创建一个新 File 实例。
public File(String pathname){...}
如果pathname为空,会抛出NullPointerException空指针异常。
2、根据parent路径名字符串和child路径名字符串创建一个新 File 实例。
public File(String parent, String child){...}
会以父路径作为目录,子路径作为父路径下的目录或者文件名,最后得到的实例对象的路径就是父路径和子路径的组合。
如果parent为null,会以子路径作为绝对路径创建实例,等同于调用第一个public File(String pathname)效果一样。
如果子路径child为Null,会抛出NullPointerException空指针异常。
3、根据父路径的File实例对象和子路径名字符串创建一个新的File实例。
public File(File parent, String child){...}
等同于第二种构造器,这个构造器是父路径字符串的File实例对象传进去。
举例:
public static void main(String[] args)
{//父路径字符串String parent = "F:/testFile";File parentFile= new File(parent);//子路径字符串String child = "F:/testFile/test.txt";//两种构造器实例化File对象File file1 = new File(parent, child);File file2 = new File(parentFile, child);//两种构造器的实例化出的对象的结果System.out.println(file1.getPath()); // 结果为 F:\testFile\F:\testFile\test.txtSystem.out.println(file2.getPath()); // 结果为 F:\testFile\F:\testFile\test.txt
}
2.3 常用方法
使用这样三种File对象,来测试每种的方法的结果。
//文件
File file = new File("F:\\测试文件.txt");
//目录
File dirFile = new File("F:\\work");
//错误格式
File errorFile = new File("haha");
1、获取实例对象代表的文件名字:public String getName()
System.out.println("文件File对象:"+file.getName()); //输出为 "文件File对象:测试文件.txt"
System.out.println("目录File对象:"+dirFile.getName()); //输出为 "目录File对象:work"
System.out.println("相对路径文件夹:"+errorFile.getName()); //输出为 "相对路径文件夹:haha"
2、获取实例对象代表的文件上级目录,如果此路径名没有指定父目录,则返回 null:public String getParent()
System.out.println("文件File对象:"+file.getParent()); //输出为 "文件File对象:F:\"
System.out.println("目录File对象:"+dirFile.getParent()); //输出为 "目录File对象:F:\"
System.out.println("相对路径文件夹:"+errorFile.getParent()); //输出为 "相对路径文件夹:null"
3、获取实例对象的父路径的实例,如果此路径名未指定父目录,则返回null,也就是获取对象的上级目录然后再实例化一个对象:public File getParentFile()
System.out.println("文件File对象:"+file.getParentFile()); //输出为 "文件File对象:F:\"
System.out.println("目录File对象:"+dirFile.getParentFile()); //输出为 "目录File对象:F:\"
System.out.println("相对路径文件夹:"+errorFile.getParentFile()); //输出为 "相对路径文件夹:null"
4、获取实例对象的实际路径名字符串:public String getPath()
System.out.println("文件File对象:"+file.getPath()); //输出为 "文件File对象:F:\测试文件.txt"
System.out.println("目录File对象:"+dirFile.getPath()); //输出为 "目录File对象:F:\work"
System.out.println("相对路径文件夹:"+errorFile.getPath()); //输出为 "相对路径文件夹:haha"
5、测试此实例对象的路径是否为绝对路径:public boolean isAbsolute()
System.out.println("文件File对象:"+file.isAbsolute()); //输出为 "文件File对象:true"
System.out.println("目录File对象:"+dirFile.isAbsolute()); //输出为 "目录File对象:true"
System.out.println("相对路径文件夹:"+errorFile.isAbsolute()); //输出为 "相对路径文件夹:false"
6、获取实例对象的绝对路径名字符串:public String getAbsolutePath()
System.out.println("文件File对象:"+file.getAbsolutePath()); //输出为 "文件File对象:F:\测试文件.txt"
System.out.println("目录File对象:"+dirFile.getAbsolutePath()); //输出为 "目录File对象:F:\work"
System.out.println("相对路径文件夹:"+errorFile.getAbsolutePath()); //输出为 "相对路径文件夹:F:\xx\firstproject\haha F:\xx\firstproject 是工作空间路径"
7、测试应用程序是否可以读取此实例对象表示的文件:public boolean canRead()
System.out.println("文件File对象:"+file.canRead()); //输出为 "文件File对象:true"
System.out.println("目录File对象:"+dirFile.canRead()); //输出为 "目录File对象:true"
System.out.println("相对路径文件夹:"+errorFile.canRead()); //输出为 "相对路径文件夹:false"
8、测试应用程序是否可以修改此实例对象表示的文件:public boolean canWrite()
System.out.println("文件File对象:"+file.canWrite()); //输出为 "文件File对象:true"
System.out.println("目录File对象:"+dirFile.canWrite()); //输出为 "目录File对象:true"
System.out.println("相对路径文件夹:"+errorFile.canWrite()); //输出为 "相对路径文件夹:false"
9、测试实例对象表示的文件或目录是否存在:public boolean exists()
System.out.println("文件File对象:"+file.exists()); //输出为 "文件File对象:true"
System.out.println("目录File对象:"+dirFile.exists()); //输出为 "目录File对象:true"
System.out.println("相对路径文件夹:"+errorFile.exists()); //输出为 "相对路径文件夹:false"
10、测试实例对象是否是一个目录: public boolean isDirectory()
System.out.println("文件File对象:"+file.isDirectory()); //输出为 "文件File对象:false"
System.out.println("目录File对象:"+dirFile.isDirectory()); //输出为 "目录File对象:true"
System.out.println("相对路径文件夹:"+errorFile.isDirectory()); //输出为 "相对路径文件夹:false"
11、测试实例对象是否是一个文件:public boolean isFile()
System.out.println("文件File对象:"+file.isFile()); //输出为 "文件File对象:true"
System.out.println("目录File对象:"+dirFile.isFile()); //输出为 "目录File对象:false"
System.out.println("相对路径文件夹:"+errorFile.isFile()); //输出为 "相对路径文件夹:false"
12、删除此实例对象表示的文件或目录:public boolean delete()
13、创建此实例对象指定的目录:public boolean mkdir()
14、创建此实例对象指定的目录,包括创建必需但不存在的父目录:public boolean mkdirs()
15、 重新命名此实例对象表示的文件:public boolean renameTo(File dest)
16、返回由此实例对象表示的文件的长度:public long length()
三、MultipartFile类
3.1 定义
多部分请求中收到的上载文件的表示形式。
文件内容要么存储在内存中,要么临时存储在磁盘上。无论哪种情况,用户都可以根据需要负责将文件内容复制到会话级或持久性存储中。临时存储将在请求处理结束时清除。
3.2 常用方法
1、以字节数组形式返回文件的内容:byte[] getBytes() throws IOException
2、返回文件的内容类型:String getContentType()
3、返回一个InputStream,以从中读取文件的内容:InputStream getInputStream() throws IOException
4、 返回参数的名称:String getName()
5、返回客户端文件系统中的原始文件名:String getOriginalFilename()
6、返回文件的大小(以字节为单位)如果为空,则为空字节数组:long getSize()
7、判断是否为空,或者上传的文件是否有内容:boolean isEmpty()
8、将收到的文件传输到给定的目标文件:void transferTo(File dest) throws IOException, IllegalStateException
这可以在文件系统中移动文件,在文件系统中复制文件,或将内存保存的内容保存到目标文件。
如果目标文件已经存在,则将首先删除它。 如果文件已在文件系统中移动,则无法再次调用此操作。因此,只需调用一次此方法即可使用任何存储机制。
四、File类和MultipartFile类的转换
4.1 Multipartfile转File类型
//创建一个file对象
File file = new File(path);
//将multipartFile的输入流,拷贝到file对象,此时file对象的内容就是mutipartFile中的内容
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);
4.2 File转Multipartfile类型
//创建file对象
File file = new File("d:/test.txt");
//获取file对象的文件输入流
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile =new MockMultipartFile("test.txt", file.getName(), "text/plain", IOUtils.toByteArray(input));
4.3创建MultiPartfile需要的参数
MultipartFile mulFile = new MockMultipartFile(
"test.txt", //文件名
"test.txt", //文件在客户机上的文件名
ContentType.APPLICATION_OCTET_STREAM.toString(), //文件类型
new FileInputStream(file) //文件流
);
Java_File类和MultipartFile类相关推荐
- MultipartFile类常用的一些方法
2019独角兽企业重金招聘Python工程师标准>>> MultipartFile类常用的一些方法: String getContentType()//获取文件MIME类型 Inpu ...
- multipartfile转excel_关于MultipartFile类接收EXCEL文件的问题
现有的做法是用MultipartFile类读取excel文件以后用transferTo()转存到硬盘上,请问能不能不用转存到硬盘直接用File类读取,试过将其强制转换成File类型结果报错. 目前做法 ...
- MultipartFile类的说明
MultipartFile类的说明 MultipartFile类是一个接口 public interface MultipartFile /** * A representation of an ...
- python中的新式类与旧式类的一些基于descriptor的概念(上)
python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...
- java 类定义_JAVA类与对象(二)----类定义基础
类是组成java程序的基本要素,是java中的一种重要的复合数据类型.它封装了一类对象的状态和方法,是这一类对象的原型.一个类的实现包括两个部分:类声明和类体,基本格式: class { 属性 方法 ...
- C++派生类与基类构造函数调用次序
本文用来测试C++基类和派生类构造函数,析构函数,和拷贝构造函数的调用次序. 运行环境:SUSE Linux Enterprise Server 11 SP2 (x86_64) #include & ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- Java 常用对象-Date类和Calender类
2017-11-02 22:29:34 Date类:类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值 ...
最新文章
- LeetCode简单题之只出现一次的数字
- Nature Methods:Rob Knight发布Striped UniFrac算法轻松分析微生物组大数据
- JCIFS实现单点登录
- Table of Contents - Tomcat
- java 取得日期_java-如何从某个日期获取日期列表?
- BW:BW增量更新方法(假增量)
- php 中间代码,PHP内核中用户函数、内部函数和中间代码的转换
- 信息学奥赛一本通C++语言——1022: 整型与布尔型的转换
- AcWing1088.旅行问题(单调队列DP)
- 转型个股赚钱机会最大--封起“345”选股
- 最新nodejs的开发学习实战(1)从一个博客开始
- unity的UI元素层级调整的方法
- 5大主流ASO优化工具
- 南阳oj 58 bfs入门
- TexturePacker 图片加密
- 怎么识别图片上的文字?告诉你3款简单又实用的识别软件
- 基于JAVA宠物用品交易网站计算机毕业设计源码+系统+lw文档+部署
- 互联网大公司与创业公司
- 安装Ubuntu的时候屏幕太小看不到下一步,点不到继续按钮
- Magento付款方式的判断