0
点赞
收藏
分享

微信扫一扫

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


NIO目录

文章目录

  • ​​NIO目录​​
  • ​​前言​​
  • ​​一、是什么?​​
  • ​​Paths:工具类​​
  • ​​Files工具类​​
  • ​​二、代码​​

前言

NIO可以和IO做一下比较

一、是什么?

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

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

Paths:工具类

Path(接口):类似于File,用路径名表示一个目录或文件

,用来创建Path接口的对象

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

Files工具类

操作文件或目录的工具类:

(1)Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING);

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


现成的copy文件方法,如果有就替换

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

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

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


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


File的delete是存在就删除,不存在就啥都不干

NIO中的delete(Path path) 存在就删除,不存在就抛异常,反馈给我们,我们自己再做处理

注意:当文件不存在时,报异常有时候是更好的

(3)move(Path source, Path target, CopyOption… options)

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

(4)List readAllLines(Path path, Charset cs)

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

后面还有很多新版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);
}
}


举报

相关推荐

0 条评论