在日期的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接口來訪問文件的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。