欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Java7的Files工具类和Path接口来访问文件的方法

程序员文章站 2024-04-01 15:58:10
在日期的java版本中,都是通过file类来访问文件,但是file类的操作有限,不能利用特定文件系统的特性,性能也不高。在访问出错时,很多都是直接返回false,并没有给出...

在日期的java版本中,都是通过file类来访问文件,但是file类的操作有限,不能利用特定文件系统的特性,性能也不高。在访问出错时,很多都是直接返回false,并没有给出异常信息。因此java7新增了files和paths两个工具类来操作文件。files类中包含了大量的静态方法来操作文件。java7还引入了一个path接口,它代表的是与平台无关的平台路径,关于它的用法,下面会做详细的介绍。

paths提供了两个方法用来获取path对象,

1、get(url url)

2、get(string first,string… more),这是一个将多个字符串拼接成一个路径的方法

下面是测试的代码

package com.sdjz.test1;

import java.io.filenotfoundexception;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.nio.charset.charset;
import java.nio.file.files;
import java.nio.file.path;
import java.nio.file.paths;
import java.nio.file.attribute.filetime;
import java.util.arraylist;
import java.util.calendar;
import java.util.list;

public class filestest {

  public static void main(string[] args) throws filenotfoundexception, ioexception {
    path path = paths.get("d:", "test.txt");
    // 得到path的绝对路径
    system.out.println(path.toabsolutepath());
    // 复制文件
    files.copy(paths.get("d:", "test.txt"), new fileoutputstream("text1.txt"));
    // 将读取到的内容添加list集合中
    list<string> lists = files.readalllines(paths.get("d:", "est.java"));
    system.out.println("读取到的文件:" + lists);
    system.out.println("是否可写? --->" + files.iswritable(paths.get("d:", "test.txt")));
    // 创建一个集合,用于添加到文件中
    list<string> list = new arraylist<>();
    list.add("adsf");
    list.add("测试1");
    list.add("测试2");
    // 将多个字符串写入到文件中
    files.write(paths.get("d:", "test.txt"), list, charset.forname("gbk"));
    // 判断指定文件的大小
    system.out.println("test.txt文件的大小为:" + files.size(paths.get("d:", "test.txt")));
    // 判断是否为隐藏文件
    system.out.println("test.txt是否为隐藏文件 ?" + files.ishidden(paths.get("d:", "test.txt")));
    // 得到一个calendar实例,用于设置文件修改的时间
    calendar ca = calendar.getinstance();
    // 设置时间为2014年5月23日
    ca.set(2014, 4, 23);
    // 设置文件最后修改的时间
    files.setlastmodifiedtime(path, filetime.frommillis(ca.gettimeinmillis()));
  }
}

运行上面的程序,这会看到如下的结果

使用Java7的Files工具类和Path接口来访问文件的方法

下面是修改之后的文件修改时间的属性

使用Java7的Files工具类和Path接口来访问文件的方法

以上这篇使用java7的files工具类和path接口来访问文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。