iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

Java SE系列 第 26

Day26:救世主

在資料輸入輸出原本Java提供了java.io套件來給開發者使用,不過都是面對Byte[]的操作,在實際開發中不是那麼有效率,很可能要自己寫一些方法把資料的操作變得更有效率。

到了Java 1.4後,官方推出了新的資料輸入輸出套件:java.nio,提供了Buffer類別的操作,讓我們可以透過Buffer類別的操作更有效率做到輸入輸出的邏輯。

簡單說,就是java.io我們要面對最原始的Byte[],而java.nio我們可以透過Buffer類別提供的方法來操作資料,但在Buffer與資料來源之間多了一層Channel:
IOVsNIO

而除了資料的輸入輸出外,Java 1.7也推出了NIO2,替檔案路徑的操作提供了更便捷的套件,最具代表性的就是Path了。

Path download = Paths.get("C:\\Users\\Downloads");
Path download2 = Paths.get("C:\\Users", "Downloads");

Path path = Paths.get("C:\\Users\\Picture\\..\\Downloads");
Path path2 = Paths.get(".\\Downloads");
path.toRealPath().equals(path2.toAbsolutePath());

上述範例大概表現了一下NIO2的方便性,我們可以利用不定長度引數放入路徑的片段,Java會幫我們組成一個完整的Path物件;相對路徑可以透過toAbsolutePath()轉換為絕對路徑,或者我們在路徑中間有透過符號串聯,只要呼叫toRealPath,也可以轉換為最直接的絕對路徑回來,並且都幫我們實作好equals的比較了。


上一篇
Day25:看看豬走路
下一篇
Day27:危機意識
系列文
Java SE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言