使用Java7的Files工具類和Path接口來訪問文件的方法
在日期的java版本中,都是通過File類來訪問文件,但是File類的操作有限,不能利用特定文件系統(tǒng)的特性,性能也不高。在訪問出錯(cuò)時(shí),很多都是直接返回false,并沒有給出異常信息。因此Java7新增了Files和Paths兩個(gè)工具類來操作文件。Files類中包含了大量的靜態(tài)方法來操作文件。Java7還引入了一個(gè)Path接口,它代表的是與平臺(tái)無關(guān)的平臺(tái)路徑,關(guān)于它的用法,下面會(huì)做詳細(xì)的介紹。
Paths提供了兩個(gè)方法用來獲取Path對象,
1、get(URL url)
2、get(String first,String… more),這是一個(gè)將多個(gè)字符串拼接成一個(gè)路徑的方法
下面是測試的代碼
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());
// 復(fù)制文件
Files.copy(Paths.get("d:", "test.txt"), new FileOutputStream("text1.txt"));
// 將讀取到的內(nèi)容添加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")));
// 創(chuàng)建一個(gè)集合,用于添加到文件中
List<String> list = new ArrayList<>();
list.add("adsf");
list.add("測試1");
list.add("測試2");
// 將多個(gè)字符串寫入到文件中
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")));
// 得到一個(gè)Calendar實(shí)例,用于設(shè)置文件修改的時(shí)間
Calendar ca = Calendar.getInstance();
// 設(shè)置時(shí)間為2014年5月23日
ca.set(2014, 4, 23);
// 設(shè)置文件最后修改的時(shí)間
Files.setLastModifiedTime(path, FileTime.fromMillis(ca.getTimeInMillis()));
}
}
運(yùn)行上面的程序,這會(huì)看到如下的結(jié)果

下面是修改之后的文件修改時(shí)間的屬性

以上這篇使用Java7的Files工具類和Path接口來訪問文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea報(bào)錯(cuò):程序包org.springframework.web.bind.annotation不存在
在用本地的maven倉庫的時(shí)候會(huì)org.springframework.web.bind.annotation不存在的錯(cuò)誤,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解下2023-08-08
SpringBoot異常: nested exception is java.lang.NoClassDefFoundE
這篇文章主要介紹了SpringBoot異常: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext解決方案,說明了錯(cuò)誤原因和解決方案,需要的朋友可以參考下2021-06-06
Java利用ffmpeg實(shí)現(xiàn)視頻MP4轉(zhuǎn)m3u8
本文綜合了下網(wǎng)上教程,從ffmpeg工具轉(zhuǎn)碼,ffmpeg視頻播放,java語言操控ffmpeg轉(zhuǎn)碼,轉(zhuǎn)碼后視頻上傳阿里云oss,四個(gè)方面完整記錄下這個(gè)流程,需要的朋友可以參考下2024-02-02
Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下2017-05-05
Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼)
這篇文章主要介紹了Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請求頭header的解決方法
在Spring?Cloud中,使用Feign進(jìn)行服務(wù)之間的調(diào)用時(shí),默認(rèn)情況下是不會(huì)傳遞header的,這篇文章給大家介紹SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請求頭header的解決方法,感興趣的朋友一起看看吧2024-01-01
探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式
這篇文章主要介紹了探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式,文中講到了使用Java代碼實(shí)現(xiàn)的處理JSON的一些主要方法,需要的朋友可以參考下2015-07-07

