IO 流相關
IO 操作包括讀和寫,應用的場景主要包括網路操作和檔案操作,原生的 Java 類庫區分字元流和位元組流,位元組流 InputStream 和 OutputStream 就有很多很多種,使用起來讓人頭皮發麻。
Hutool 封裝了流操作工具類 IoUtil、檔案讀寫操作工具類 FileUtil、檔案型別判斷工具類 FileTypeUtil 等等。
BufferedInputStream in = FileUtil.getInputStream("hutool/origin.txt");
BufferedOutputStream out = FileUtil.getOutputStream("hutool/to.txt");
long copySize = IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);
複製程式碼
在 IO 操作中,檔案的操作相對來說是比較複雜的,但使用頻率也很高,幾乎所有的專案中都躺著一個叫 FileUtil 或者 FileUtils 的工具類。Hutool 的 FileUtil 類包含以下幾類操作:
- 檔案操作:包括檔案目錄的新建、刪除、複製、移動、改名等
- 檔案判斷:判斷檔案或目錄是否非空,是否為目錄,是否為檔案等等
- 絕對路徑:針對 ClassPath 中的檔案轉換為絕對路徑檔案
- 檔名:主檔名,副檔名的獲取
- 讀操作:包括 getReader、readXXX 操作
- 寫操作:包括 getWriter、writeXXX 操作
順帶說說 classpath。
在實際編碼當中,我們通常需要從某些檔案裡面讀取一些資料,比如配置檔案、文字檔案、圖片等等,那這些檔案通常放在什麼位置呢?
放在專案結構圖中的 resources 目錄下,當專案編譯後,會出現在 classes 目錄下。對應磁碟上的目錄如下圖所示:
當我們要讀取檔案的時候,我是不建議使用絕對路徑的,因為作業系統不一樣的話,檔案的路徑識別符號也是不一樣的。最好使用相對路徑。
假設在 src/resources 下放了一個檔案 origin.txt,檔案的路徑引數如下所示:
FileUtil.getInputStream("origin.txt")
複製程式碼
假設檔案放在 src/resources/hutool 目錄下,則路徑引數改為:
FileUtil.getInputStream("hutool/origin.txt")
複製程式碼
相關文章
- 基礎IO相關操作
- 網路流相關
- IO 流
- IO流
- 理解socket.io(一)---相關的APIAPI
- 標準IO和系統IO的相關知識積累
- RTSP 流相關工具介紹
- [java IO流]之 IO概述Java
- Java IO: 流Java
- Java IO流Java
- java -IO流Java
- Java IO流Java
- JavaSE:IO流Java
- javaSE<IO流>Java
- IO 字元流字元
- java - IO流Java
- 8、IO流:轉換流
- 一些關於IO流的知識點
- 圖解Linux的IO模型和相關技術圖解Linux模型
- 11.IO 流
- 11.IO流
- JavaSE-IO流Java
- Java的IO流Java
- IO流(03)--序列化流、列印流
- IO流之 檔案操作字元流字元
- IO流 檔案字元流FileReader、FlieWriter字元
- IO流的Properties集合,序列化流與反序列化流,列印流及commons-IO
- JAVA IO流-小白版Java
- MySQL中的IO流MySql
- Java筆記-IO流Java筆記
- 【重學Java】IO流Java
- Java IO流(詳細)Java
- JAVA_基礎IO流物件流(三)Java物件
- IO流(02)--屬性集、緩衝流、轉換流
- [java IO流]之 萬能輸出流列印流printWriterJava
- Java IO: 其他字元流(下)Java字元
- android IO流操作總結Android
- io流-file類的使用