00023.05 NIO的工具类(IO和NIO可以做一下比较)(实现文件复制、删除、读取等等Paths工具类、Files工具类)

NIO目录

前言

NIO可以和IO做一下比较

一、是什么?

IO: 阻塞式IO
NIO: JDK1.4–>JDK1.7 非阻塞式的IO,最开始JDK1.4的时候不是那么成熟应用并不广,后来慢慢进行改版到JDK1.7已经比较容易看到了

NIO的速度和效率应该会更高一些
下面是NIO的一些比较重要的API

Paths:工具类

Path(接口):类似于File,用路径名表示一个目录或文件
,用来创建Path接口的对象
在这里插入图片描述

Files工具类

操作文件或目录的工具类:
(1)Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING);
在这里插入图片描述
现成的copy文件方法,如果有就替换
在这里插入图片描述

(2)delete(Path path) 功能类似于File类的delete()
不同的地方是会报异常,当文件不存在时
还有很多,可以自己在API里面看

在这里插入图片描述
在这里插入图片描述
File的delete是存在就删除,不存在就啥都不干
NIO中的delete(Path path) 存在就删除,不存在就抛异常,反馈给我们,我们自己再做处理
注意:当文件不存在时,报异常有时候是更好的
(3)move(Path source, Path target, CopyOption… options)
在这里插入图片描述

(4)List readAllLines(Path path, Charset cs)
在这里插入图片描述

后面还有很多新版NOI……,API里面有很多介绍,这里就不再赘述

二、代码

public class TestNIO {
	@Test
	public void test06() throws IOException{
		Path file = Paths.get("testIO","java","2.txt");
		List<String> allLines = Files.readAllLines(file, Charset.forName("UTF-8"));
		for (String string : allLines) {
			System.out.println(string);
		}
	}
	
	@Test
	public void test05() throws IOException{
		Path src = Paths.get("2.txt");
		Path dest = Paths.get("testIO","java","2.txt");
		Files.move(src, dest, StandardCopyOption.REPLACE_EXISTING);
	}
	
	
	@Test
	public void test04() throws IOException{
		File file = new File("1.txt");
		file.delete();
	}
	
	@Test
	public void test03() throws IOException{
		Path src = Paths.get("1.txt");
		Files.delete(src);
	}
	
	@Test
	public void test02() throws IOException{
		Path src = Paths.get("1.txt");
		Path dest = Paths.get("2.txt");
		Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING);
	}
	
	@Test
	public void test01(){
		Path file = Paths.get("testIO", "java" ,"1.txt");
		
		int count = file.getNameCount();
		System.out.println(count);
		
		Path name = file.getName(0);
		System.out.println(name);
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值