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

在日期的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接口来访问文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    简单看一下描述,例子最重要. 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2.getAbsolutePath(): 返回绝对路径,但不会处理"."和".."的情况 3.getCanonicalPath(): 返回的是规范化的绝对路径,相当于将getAbsolutePath()中的"."和".."解析成对应的正确的路径 第一个例子:(使用:".\\src\\test.txt&qu

  • 基于java Files类和Paths类的用法(详解)

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.

  • java文件操作之Path,Paths,Files

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.

  • java中File类的使用方法

    构造函数 复制代码 代码如下: public class FileDemo {     public static void main(String[] args){         //构造函数File(String pathname)         File f1 =new File("c:\\abc\\1.txt");         //File(String parent,String child)         File f2 =new File("c:\\a

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

    在日期的java版本中,都是通过File类来访问文件,但是File类的操作有限,不能利用特定文件系统的特性,性能也不高.在访问出错时,很多都是直接返回false,并没有给出异常信息.因此Java7新增了Files和Paths两个工具类来操作文件.Files类中包含了大量的静态方法来操作文件.Java7还引入了一个Path接口,它代表的是与平台无关的平台路径,关于它的用法,下面会做详细的介绍. Paths提供了两个方法用来获取Path对象, 1.get(URL url) 2.get(String

  • C#实现的文件上传下载工具类完整实例【上传文件自动命名】

    本文实例讲述了C#实现的文件上传下载工具类.分享给大家供大家参考,具体如下: 这里给出的工具类是在VS2013环境下采用C#语言实现文件上传.下载功能.上传时,为避免文件名在服务器中重复,采用"服务器时间+8位随机码+文件名+文件后缀"的方式作为服务器上的文件名:下载采用的是WebAPI的方式进行的,下载成功后可自定义文件的保存路径. 具体源码如下所示: using System; using System.IO; using System.Net; using System.Net.

  • Java实现的文件上传下载工具类完整实例【上传文件自动命名】

    本文实例讲述了Java实现的文件上传下载工具类.分享给大家供大家参考,具体如下: 这是一个在Eclipse环境下采用Java语言实现文件上传下载的工具类.和之前介绍的C#文件上传下载工具类一样,在上传时,为避免文件名在服务器中重复,采用"服务器时间(定义到毫秒)+文件名+文件后缀"的方式作为服务器上的文件名:下载过程中利用 spring mvc ResponseEntity 做文件下载,返回的是字节流,下载成功后可自定义文件的保存路径. 具体源码如下所示: package com.ut

  • Java NIO Path接口和Files类配合操作文件的实例

    Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路径,例如 / 或 C:\ ,而允许访问的根部件取决于文件系统: 2.以根部件开始的路径是绝对路径,否则就是相对路径: 3.静态的Paths.get方法接受一个或多个字符串,字符串之间自动使用默认文件系统的路径分隔符连接起来(Unix是 /,Windows是 \ ),这就解决了跨平台的问题,接着解析连接起来的结果,如果不是合法路径就抛出InvalidPathException异常,否则就

  • 浅谈常用字符串与集合类转换的工具类

    在项目中,我们经常需要把接收到的字符串转换成对应的集合类保存,或者把集合类转换成字符串以方便传输,这个工具类中封装了几个常用的方法,对于这种转换需求十分方便. import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Properties; import java.u

  • 封装jndi操作ldap服务器的工具类

    LDAP操作封装类 目标:使用者只需要会使用List,Map 数据结构,将对LDAP的操作进行封装 类:主要有三个类 1 Env类 包含LDAP的连接信息 2 LdapConnectionFactory类 ldap连接工厂,提供初始化及获取ldap连接的方法 3 LdapOperUtils ldap的处理工具类,提供了各种操作ldap的方法. 连接LDAP的连接属性类 复制代码 代码如下: package com.common.ldapconnection; import org.apache.

  • Android编程实现的身份证、车牌号正则验证工具类实例

    本文实例讲述了Android编程实现的身份证.车牌号正则验证工具类.分享给大家供大家参考,具体如下: /** * 正则表达式验证工具类(验证身份证.车牌号等) * * @author chenlin * */ public class ValidateUtil { /** * 验证str是否为正确的身份证格式 * * @param str * @return */ public static boolean isIdentityCard(EditText view) { boolean flag

  • 超实用的android自定义log日志输出工具类

    android自定义log日志输出工具,该工具类具有以下优点: 1 在LogUtlis方法的第一个参数中填this可以输出当前类的名称,特别是在匿名内部类使用也可以输出当前类名. 如 : LogUtils.i(this,"这是一个实用的日志工具类") 或 LogUtils.i(类名.class,"这是一个实用的日志工具类"). 效果:比如我在MainActivity中直接LogUtils.i(this,"logTest"),配合自己喜欢的标志,结

  • java中的Arrays这个工具类你真的会用吗(一文秒懂)

    Java源码系列三-工具类Arrays ​ 今天分享java的源码的第三弹,Arrays这个工具类的源码.因为近期在复习数据结构,了解到Arrays里面的排序算法和二分查找等的实现,收益匪浅,决定研读一下Arrays这个类的源码.不足之处,欢迎在评论区交流和指正. 1.认识Arrays这个类: ​ 首先它在java的utils包下,属于Java Collections Framework中的一员.它的初衷就是一个工具类,封装了操纵数组的各种方法,比如排序,二分查找,数组的拷贝等等.满足了我们日常

  • Springboot如何通过自定义工具类获取bean

    目录 Springboot 自定义工具类获取bean 在工具类注入bean的三种方式 1. 需求/目的 2.使用环境 3.方法一:获取ApplicationContext上下文 4.方法二:将工具类的对象也添加为bean 5.方法三:在spring Boot 启动时创建工具类自身的静态对象 Springboot 自定义工具类获取bean /** * Created with IntelliJ IDEA. * * @Auther: zp * @Date: 2021/03/26/13:32 * @D

随机推荐