日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java 7 – NIO文件革命

發(fā)布時間:2023/12/3 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 7 – NIO文件革命 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Java 7(“項(xiàng)目代幣”)已于去年7月問世。 此版本中的新增功能很有用,例如,嘗試使用資源–從try塊自動處理可關(guān)閉的資源,switch語句中的字符串,用于異常的multicatch以及用于使用泛型的'<>'運(yùn)算符。 每個人最期待的附加功能,即閉包,已推遲到版本8。但是,令人驚訝的是,Java 7的發(fā)布帶來了一些小的“革命”,在我看來,這在很大程度上沒有引起注意,可能是Java 7發(fā)行版中最好的部分。

我要指的更改是添加了java.nio.file軟件包。 java.nio.file軟件包添加了類和接口,使使用Java中的文件和目錄更加容易。 這些更改的首要也是最重要的一點(diǎn)就是復(fù)制或移動文件的能力。 我總是感到很沮喪,如果您要復(fù)制或移動文件,則必須滾動自己的“復(fù)制”或“移動”版本。 Guava項(xiàng)目com.google.common.io軟件包中提供的實(shí)用程序提供了這些功能,但我認(rèn)為復(fù)制和移動操作應(yīng)是該語言的核心部分。 在接下來的幾篇文章中,我將對此處討論的類/接口以及一些其他未涵蓋的類/接口進(jìn)行更詳細(xì)的介紹(包括代碼示例)。 這篇文章是java.nio.file軟件包中新功能的介紹和概述。

突圍責(zé)任

如果您看一下目前的java.io軟件包,那么絕大多數(shù)類都是針對輸入流,輸出流,讀取器或?qū)懭肫鞯摹?只有一個類定義用于直接使用文件系統(tǒng)的操作,即File類。 java.io中的某些其他類將File對象作為構(gòu)造函數(shù)中的參數(shù),但是所有文件和目錄的交互都是通過File類進(jìn)行的。 在java.nio.file包中,功能已被引入其他類/接口。 首先要討論的是Path接口和Files類。

路徑和文件

Path對象類似于java.io.File對象,因?yàn)樗梢员硎疚募到y(tǒng)上的文件或目錄。 但是,Path對象更為抽象,因?yàn)樗谴砦募到y(tǒng)上目錄層次結(jié)構(gòu)(可能包含或不包含文件)的一系列名稱。 “路徑”界面中沒有允許使用目錄或文件的方法。 定義的方法僅用于處理或操作Path對象,將一個Path解析為另一路徑,等等。(有一種方法可用于從Path toFile中獲取java.io.File對象。 File類現(xiàn)在包含一個toPath方法。)為了處理文件和目錄,Path對象與Files類一起使用。 Files類完全由用于處理目錄和文件的靜態(tài)方法組成,包括復(fù)制,移動和用于符號鏈接的函數(shù)。 Files類中的另一個有趣的方法是newDirectoryStream方法,該方法返回一個DirectoryStream對象,該對象可以遍歷目錄中的所有條目。 盡管java.io.File類具有在其中提供FileFilter實(shí)例的list方法,但是newDirectoryStream可以使用字符串“ glob”(例如“ * .txt”)進(jìn)行過濾。

文件存儲

如前所述,與java.io包中的文件系統(tǒng)的所有交互都是通過File類。 這包括獲取有關(guān)文件系統(tǒng)中已用或可用空間的信息。 在java.nio.file中,有一個FileStore類,它表示文件的存儲類型,無論是設(shè)備,分區(qū)還是concreate文件系統(tǒng)。 FileStore類定義用于獲取有關(guān)文件存儲信息的方法,例如getTotalSpace,getUsableSpace,getUnallocated空間。 可以通過調(diào)用Files.getFileStore(Path path)方法來獲取FileStore,該方法將返回該特定文件的FileStore。

文件系統(tǒng)和文件系統(tǒng)

顧名思義,文件系統(tǒng)提供對文件系統(tǒng)的訪問,并且是文件系統(tǒng)中其他對象的工廠。 例如,FileSystem類定義一個getPath方法,該方法將字符串(/ foo / bar)轉(zhuǎn)換為依賴于系統(tǒng)的Path對象,該對象可用于訪問文件或目錄。 FileSystem類還提供了一個getFileStores方法,該方法返回FileSystem中所有FileStore的可迭代方法。 FileSystems類使用靜態(tài)FactorySystems.getDefault方法提供對FileSystem對象的訪問。 還有一些用于創(chuàng)建自定義FileSystem對象的靜態(tài)方法。

結(jié)論

這是使用java.nio.file軟件包提供的文件的新功能的快速高級視圖。 有更多的信息尚未在此處討論,因此請看一下api文檔。希望這篇文章能夠使讀者對Java 7中改進(jìn)的文件處理感興趣。請確保在我們繼續(xù)探索時堅(jiān)持學(xué)習(xí)。更詳細(xì)的說明java.nio.file軟件包必須提供的內(nèi)容。

參考: Java 7的新增功能–我們的JCG合作伙伴 Bill Bejeck在“ 隨機(jī)編碼思想”博客上發(fā)表的(安靜的)NIO文件革命


翻譯自: https://www.javacodegeeks.com/2012/01/java-7-nio-file-revolution.html

總結(jié)

以上是生活随笔為你收集整理的Java 7 – NIO文件革命的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。