使用Java7的Files工具類和Path接口來訪問文件的方法
在日期的java版本中,都是通過File類來訪問文件,但是File類的操作有限,不能利用特定文件系統(tǒng)的特性,性能也不高。在訪問出錯時,很多都是直接返回false,并沒有給出異常信息。因此Java7新增了Files和Paths兩個工具類來操作文件。Files類中包含了大量的靜態(tài)方法來操作文件。Java7還引入了一個Path接口,它代表的是與平臺無關(guān)的平臺路徑,關(guān)于它的用法,下面會做詳細(xì)的介紹。
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()); // 復(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)建一個集合,用于添加到文件中 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實例,用于設(shè)置文件修改的時間 Calendar ca = Calendar.getInstance(); // 設(shè)置時間為2014年5月23日 ca.set(2014, 4, 23); // 設(shè)置文件最后修改的時間 Files.setLastModifiedTime(path, FileTime.fromMillis(ca.getTimeInMillis())); } }
運行上面的程序,這會看到如下的結(jié)果
下面是修改之后的文件修改時間的屬性
以上這篇使用Java7的Files工具類和Path接口來訪問文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea報錯:程序包org.springframework.web.bind.annotation不存在
在用本地的maven倉庫的時候會org.springframework.web.bind.annotation不存在的錯誤,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解下2023-08-08SpringBoot異常: nested exception is java.lang.NoClassDefFoundE
這篇文章主要介紹了SpringBoot異常: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext解決方案,說明了錯誤原因和解決方案,需要的朋友可以參考下2021-06-06Java利用ffmpeg實現(xiàn)視頻MP4轉(zhuǎn)m3u8
本文綜合了下網(wǎng)上教程,從ffmpeg工具轉(zhuǎn)碼,ffmpeg視頻播放,java語言操控ffmpeg轉(zhuǎn)碼,轉(zhuǎn)碼后視頻上傳阿里云oss,四個方面完整記錄下這個流程,需要的朋友可以參考下2024-02-02Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下2017-05-05Java利用TCP協(xié)議實現(xiàn)客戶端與服務(wù)器通信(附通信源碼)
這篇文章主要介紹了Java利用TCP協(xié)議實現(xiàn)客戶端與服務(wù)器通信(附通信源碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07SpringCloud服務(wù)之間Feign調(diào)用不會帶上請求頭header的解決方法
在Spring?Cloud中,使用Feign進行服務(wù)之間的調(diào)用時,默認(rèn)情況下是不會傳遞header的,這篇文章給大家介紹SpringCloud服務(wù)之間Feign調(diào)用不會帶上請求頭header的解決方法,感興趣的朋友一起看看吧2024-01-01探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式
這篇文章主要介紹了探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式,文中講到了使用Java代碼實現(xiàn)的處理JSON的一些主要方法,需要的朋友可以參考下2015-07-07