1. 程式人生 > >Java7中新增的Files和Paths工具類

Java7中新增的Files和Paths工具類

為了簡化開發,Java提供了很多的工具類,此前的文章也提到了一些其他方面的工具類,這篇文章將學習一下Java7中新增的Files類和Paths類。

Paths類:

這個類有一個靜態方法get()可以接收一個或多個字串引數,這些引數會被用預設的檔案系統路徑分隔符合並在一起,解析成功後返回一個Path物件,Path物件也是Java7中新增的類,可以很方便的獲取路徑。

你可以使用絕對路徑或者是相對路徑,例如:
Paths.get("d:", "a.txt");  //在d盤找a.txt檔案
Paths.get("a.txt"); //在專案根目錄找a.txt檔案

Paths類還有一個過載的get方法可以接收uri路徑:


Paths.get(new URI(“uri path”));

Path

Path物件是一組目錄名稱的序列,後面可以跟檔名。Path物件獲取的方式有三種:

FileSystems.getDefault().getPath();
new File("d:/a.txt").toPath();

第三種就是上面介紹的Paths.get方法了

Path類也有一些簡單的操作,有興趣可以自行閱讀官方文件。

Files

Files類是非常好用的io操作工具類,它提供了很多方法進行一些常用的io操作,例如檔案複製,移動,刪除,讀取檔案內容,寫入檔案內容等,下面介紹一些常用的方法:

檔案讀取:

Files.readAllLines(Paths.get("conf","a.txt"));
這條程式碼將返回一個List<String>集合,可以通過for迴圈讀取每一行的內容,當然,我們也可以用FilesnewBufferedReader()方法建立一個BufferedReader,這也相當方便:
String line=null;
       BufferedReader r = Files.newBufferedReader(Paths.get("conf","a.txt"));
        while((line=r.readLine())!=null){
               System.out.println(line);
             }
     r.close;
檔案寫入:
String a="abc";
 Files.write(Paths.get("conf","a.txt"),a.getBytes(),StandardOpenOption.APPEND);

其中第二個引數可以是Collection<String>,或者是更通用的Iteraboe<? extends Charsequence>,最後一個引數是寫入的模式。

當然,我們也可以用FilesnewBufferedWriter()方法建立一個BufferedWriter,這也相當方便:

BufferedWriter writer = Files.newBufferedWriter(Paths.get("conf","a.txt"));
                      writer.write("abc");
                      writer.flush();
                      writer.close();

上面這兩個我覺得是最常用的,其他的類似

建立檔案:Files.createFile(path);

建立目錄:Filse.createDirectory(path);

檢查檔案或目錄是否存在:Files.exists(path)

還有複製檔案,移動檔案,刪除檔案,檢視/修改檔案屬性

等等方法都很簡單,稍微查閱一下文件即可使用

相關推薦

Java7新增FilesPaths工具

為了簡化開發,Java提供了很多的工具類,此前的文章也提到了一些其他方面的工具類,這篇文章將學習一下Java7中新增的Files類和Paths類。Paths類:這個類有一個靜態方法get()可以接收一個或多個字串引數,這些引數會被用預設的檔案系統路徑分隔符合並在一起,解析成功

【深度精講】JFinal的RetKv工具的區別,你用對了嗎?

在JFinal中有兩個類Map的工具類,一個是有狀態的Ret,一個是無狀態的Kv,各種自己的應用場景,你用對了嗎?       下面我們從多個方面來探究一下,JFinal針對這兩個類的設計:   一、位置-com.jfinal.kit包  

在ARX通過COM在ACAD新增選單工具

轉載地址:http://blog.csdn.net/habit2/article/details/438318 程式碼如下: extern "C" AcRx::AppRetCode  acrxEntryPoint(AcRx::AppMsgCode msg, void*

Java的AES加解密工具:AESUtils

.com asc += for frame day 換行 fault mod 本人手寫已測試,大家可以參考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysC

封裝統一的參數對象Code工具

inter 數據 sta server 工具 upd ssa 網絡連接 pac 一、ResultInfo 實體承載類 package com.test.domi.common.system; public class ResultInfo<T> {

js&&||的另用法總結

&& || 用法註意:|| 和&& 可以運用在任何類型的數據上js中&&和||的另類用法總結

RSA加密解密工具

min ktr pan util 解密工具 verify 生成器 ace dmi 1 import org.apache.commons.codec.binary.Base64; 2 3 import javax.crypto.Cipher; 4 imp

深入剖析 Java7 的 HashMap ConcurrentHashMap

stat 出現 next turn fail 散列 this count key 本文將深入剖析 Java7 中的 HashMap 和 ConcurrentHashMap 的源碼,解析 HashMap 線程不安全的原理以及解決方案,最後以測試用例加以驗證。 1 Java7

控智慧身份證讀卡器工具

自定義一個身份證回撥介面 import com.zkteco.android.biometric.module.idcard.meta.IDCardInfo; /** * developer : xuyanyun * tel : 139159***** * createTime :

java讀取Property檔案屬性工具

java中讀取Property配置檔案屬性工具類: import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * 讀取Property配置檔

spring專案 通過自定義applicationContext工具獲取到applicationContext上下文物件

spring專案在伺服器啟動的時候 spring容器中就已經被建立好了各種物件,在我們需要使用的時候可以進行呼叫. 工具類程式碼如下 import org.springframework.beans.BeansException; import org.springframewo

JWT Token的生成解析工具

轉載務必說明出處:https://blog.csdn.net/LiaoHongHB/article/details/84031016 關於JWT Token的生成和解析,自己寫了一個工具類僅供大家參考。 首先在pom.xml中匯入jwt的相關jar包: <dependency>

讀取properties配置檔案屬性的值的工具

自制讀取properties配置檔案的工具類 專案中常用的一些配置的維護,例如redis的ip,資料庫ip這些一點是用檔案維護起來,方便專案開發時進行除錯,為了方便以後使用,就直接封裝了一個工具類以便使用,程式碼如下: /** * 讀取properties配置檔案中屬性的值的工

WordPress新增sslhttps教程

  在網站上使用安全套接層和超文字傳輸安全協議已經變得越來越簡單了。現在,幾乎所有人都可以學習如何新增SSL和HTTPS協議到WordPress中。    1. 選擇一個適合的SSL證書。    儘管連線一個證書到站點的流程可能是十分簡單的,但是選擇正確的證書有點複雜,根據需求的不同,可用的選項有多種,但是常

java操作時間的常用工具

在開發中經常會遇到操作時間類的業務,雖然程式碼部分並不算難,但為了今後查詢和使用方便,現將常用的幾種操作時間的工具類程式碼予以羅列,以便今後參考; 下面直接上程式碼,難度不大,諸位小夥伴可自行參考,酌情使用, public class TimeUtils

java之LineNumberReader,裝飾者模式,列印流,合併流(檔案合併分割)第三方工具(FileNameUtils)

一.LineNumberReader類 public class Kll { public static void main(String[] args) throws IOException { File file = new File("

使用JQuery實現ul新增LI刪除指定的Li元素

最近為了實現這個簡單的功能也是看了很多的內容,終於找出了看起來簡單易實現的方法,我覺得能用最簡潔的程式碼實現,就不要寫的那麼複雜,看也看不懂。先碼著,為後面的專案做做準備。 <!DOCTYPE HTML> <html lang="en-US"> <head>

java第16天----TreeMap的注意點,增強for迴圈,ArraysCollecttions工具,多執行緒簡介

昨天知識總結 1.泛型 泛型的定義 泛型的基礎 泛型在類上,介面上,方法上的使用 泛型–限制上限,限制下線 2.Map Map與Collection的比較 Map介面常用方法 Map的遍歷----會—重點 HashMap的去重和TreeMap的排序 Tre

開發常用的日期時間工具

package com.yufei.core.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;

[轉]DES加密解密工具,可自定義key

import javax.crypto.Cipher; import java.security.Key; import java.security.Security; public class DesUtils { /** * 字串預設鍵