Jim Blog I've been trying so hard,but doesn't even matter
博客信息

Java7中新增的Files和Paths工具类

发布时间:『 2018-03-31 18:05 』  博客类别:Java核心基础  阅读(76) 评论(0)

为了简化开发,Java提供了很多的工具类,此前的文章也提到了一些其他方面的工具类,这篇文章将学习一下Java7中新增的Files类和Paths类。


Paths类:

这个类有一个静态方法get()可以接收一个或多个字符串参数,这些参数会被用默认的文件系统路径分隔符合并在一起,解析成功后返回一个Path对象,Path对象也是Java7中新增的类,可以很方便的获取路径。

你可以使用绝对路径或者是相对路径,例如:

Paths.get("d:", "a.txt");  //在d盘找a.txt文件
Paths.get("a.txt"); //在项目根目录找a.txt文件

Paths类还有一个重载的get方法可以接收uri路径:

Paths.get(new URI(“uri path”));


Path类:

Path对象是一组目录名称的序列,后面可以跟文件名。Path对象获取的方式有三种:

FileSystems.getDefault().getPath("d:/a.txt");
new File("d:/a.txt").toPath();

第三种就是上面介绍的Paths.get方法了

Path类也有一些简单的操作,有兴趣可以自行阅读官方文档。


Files类:

Files类是非常好用的io操作工具类,它提供了很多方法进行一些常用的io操作,例如文件复制,移动,删除,读取文件内容,写入文件内容等,下面介绍文件读写的方法:

文件读取:

Files.readAllLines(Paths.get("conf","a.txt"));

这条代码将返回一个List<String>集合,可以通过for循环读取每一行的内容,当然,我们也可以用FilesnewBufferedReader()方法创建一个BufferedReader,这也相当方便:

       String line=null;
       BufferedReader r = Files.newBufferedReader(Paths.get("conf","a.txt"));
        while((line=r.readLine())!=null){
               System.out.println(line);
             }
     r.close;

文件写入:

String a="abc";
 Files.write(Paths.get("conf","a.txt"),a.getBytes(),StandardOpenOption.APPEND);

其中第二个参数可以是Collection<String>,或者是更通用的Iteraboe<? extends Charsequence>,最后一个参数是写入的模式。

当然,我们也可以用FilesnewBufferedWriter()方法创建一个BufferedWriter,这也相当方便:

BufferedWriter writer = Files.newBufferedWriter(Paths.get("conf","a.txt"));
                      writer.write("abc");
                      writer.flush();
                      writer.close();

上面这两个我觉得是最常用的,其他的类似

创建文件:Files.createFile(path);

创建目录:Filse.createDirectory(path);

检查文件或目录是否存在:Files.exists(path)

还有复制文件,移动文件,删除文件,查看/修改文件属性

等等方法都很简单,稍微查阅一下文档即可使用

关键字:   Java     Files类     IO  
博主信息
Jim
(生命,是一场徒劳的坚持)