File、Paths和Files类的使用详解
- Paths:通过get()方法返回一个Path对象,Path用于表示文件路径和文件。
 - Files:提供了大量处理文件的方法,例如文件复制、读取、写入,获取文件属性、快捷遍历文件目录等.....
 - Files 和 Paths是Java8新增的工具类,在处理文件方面功能非常强大。
 
Paths类
//以当前路径作为Path对象
Path p = Paths.get(".");
//使用传入的字符串返回一个Path对象
Path p2 = Paths.get("D","ReviewIO","URL");
//对应的路径
System.out.println("p对象的对应路径:" + p.toString());
System.out.println("p2对象的对应路径:" + p2.toString());
//路径数量是以路径名的数量作为标准
System.out.println("p路径数量:" + p.getNameCount());
System.out.println("p2路径数量:" + p2.getNameCount());
//获取绝对路径
System.out.println("p绝对路径:" + p.toAbsolutePath());
System.out.println("p2绝对路径:" + p2.toAbsolutePath());
//获取父路径
System.out.println("p父路径:" + p.getParent());
System.out.println("p2父路径:" + p2.getParent());
//获取p2对象的文件名或者文件目录名
System.out.println(p2.getFileName());
//通过Path对象返回一个分隔符对象
Spliterator<Path> split = p2.spliterator();
Paths类获取文件或文件目录路径可以使用采用多个字符串形式,也可以使用Path.get(D:\\ReviewIO\\URL)这种形式。返回的Path对象完全可以代替File类用于文件IO操作。
Files类
		Path source = Paths.get("F:","Java经典练习题.pdf");
		Path dest = Paths.get("F:","files.txt");
		File f = new File("F:\\ok.pdf");
		f.createNewFile();//如果f对象对应路径不存在就创建一个。
		System.out.println("source对象的文件路径:" + source);
		//复制文件
		Files.copy(source, new FileOutputStream(f));
Files完成写入文件的方法
//写入内容到文件
ArrayList<String> as = new ArrayList<>();
as.add("A");
as.add("B");
as.add("C");
Files.write(dest, as, Charset.forName("GBK"));
- 实例说明:个人觉得用起来不怎么方便。方法参数很多,尤其是Iterable<? extends CharSequence>参数,Iterable是个顶级接口,实现类几乎都是集合类,并且限制了类型通配符上限是CharSequence,这意味着要使用泛型为字符类型的集合类作为数据写入指定文件中,很麻烦。
 - 如果只是简单写入内容到文件中,建议使用重定向标准输出流,然后使用打印流写入,简单粗暴。
 
	public static void main(String[] args) throws IOException  {
		Path source = Paths.get("F:","Java经典练习题.pdf");
		/** 返回值为boolean的操作方法样例 */
		System.out.println(Files.isHidden(source));//文件是否隐藏
		System.out.println(Files.isExecutable(source));//文件是否可执行
		System.out.println(Files.isWritable(source));//文件是否可写
		//获取Paths对象对应的文件路径的文件储存
		FileStore f  = Files.getFileStore(Paths.get("F:"));
		FileStore e = Files.getFileStore(Paths.get("E:"));
		System.out.println("F盘的总大小" + f.getTotalSpace());
		System.out.println("F盘的可用大小" + f.getUsableSpace());
		System.out.println("F盘的未分配空间" + f.getUnallocatedSpace());
	}
除了以上的方法之外,Files类还提供遍历文件和目录、监控文件变化、读取和设置文件权限、查看文件属性的方法,功能十分强大。
File、Paths和Files类的使用详解的更多相关文章
- Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解
		
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
 - 【转】UML类图与类的关系详解
		
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
 - String类的构造方法详解
		
package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...
 - [转]c++类的构造函数详解
		
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初 ...
 - UML类图与类的关系详解
		
摘自:http://www.uml.org.cn/oobject/201104212.asp UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类 ...
 - phpcms加载系统类与加载应用类之区别详解
		
<?php 1. 加载系统类方法load_sys_class($classname, $path = ''", $initialize = 1)系统类文件所在的文件路径:/phpcms ...
 - c++类的构造函数详解
		
c++类的构造函数详解 一. 构造函数是干什么的 class Counter{ public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类 ...
 - 对python3中pathlib库的Path类的使用详解
		
原文连接 https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...
 - String类内存空间详解
		
java.lang.String类内存问题详解 字符串理解的难点在于其在堆内存空间上的特殊性,字符串String对象在堆内存上有两种空间: 字符串池(String pool):特殊的堆内存,专门存放S ...
 
随机推荐
- 如何一键部署项目&&代码自动更新
			
my-deploy : 由nodejs写的一个自动更新工具,理论支持所有语言(php.java.c#)的项目,支持所有git仓库(bitbucket.github等). Github 效果如何? 如果 ...
 - Linux下vim(文本编译器)的使用
			
vim (文本编译器): Vim是从 vi 发展出来的一个文本编辑器. vim的一些命令操作: 插入命令: a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行 ...
 - 瞥了一眼js
			
JS打开超链接的几种形式1.window.open(''url'') 2.用自定义函数<script>function openWin(tag,obj){obj.target=" ...
 - spring boot(1)-Hello World
			
spring boot简介 spring boot是由spring官方推出的一个新框架,对spring进行了高度封装,是spring未来的发展方向.spring boot功用众多,其中最主要的功能就是 ...
 - Python3利用Dlib19.7实现摄像头人脸识别的方法
			
0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的: 可以自动从摄像头中抠取人脸图片存储到本地,然后提取构建 ...
 - C#实现字符串相似度算法
			
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是: 把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这 ...
 - ExpressRoute 常见问题
			
什么是 ExpressRoute? ExpressRoute 是一项 Azure 服务,允许在 Microsoft 数据中心与本地环境或共同租用设施中的基础结构之间创建专用连接. ExpressRou ...
 - Android启动外部应用的方法
			
1.根据package的名称获取应用的Launch Intent Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage ...
 - execl execv
			
int execl(const char *path, const char *arg, ...); 函数说明 execl()其中后缀"l"代表list也就是参数列表的意思第一参数 ...
 - JavaScript正则表达式_常用的正则
			
一.检查邮政编码 var pattern = /[1-9][0-9]{5}/; //共 6 位数字,第一位不能为0 {5}表示后面5位0到9 var str = '224000'; alert(pa ...