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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

编程体系结构(04):JavaIO流文件管理

發布時間:2025/3/17 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程体系结构(04):JavaIO流文件管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、IO流分類

1、分類角度

流的方向

  • 輸入流:從數據源中讀取數據到應用中的流;
  • 輸出流:從應用中將數據寫入到目的地的流;

流數據類型

  • 字節流:以字節形式來讀寫的流,標識是名稱以Stream結尾;
  • 字符流:以字符形式來讀寫的流,標識是名稱以Writer、Reader結尾;
  • 管道流:以數據塊為單位來處理,緩沖區就是用于讀寫的數據塊;

流的角色

  • 節點流:可以從一個節點或者向一個節點讀/寫數據的流,也被稱為低級流;
  • 處理流:對存在的流進行連接或者封裝、封裝后的流來進行讀/寫、也被稱為高級流。

2、API體系

5個核心類ObjectOutputStream:File、OutputStream、InputStream、Writer、Reader;

1關鍵接口:Serializable;

二、API細節分類

1、字節輸入流

InputStream:字節輸入流是所有字節輸入流的父類、為所有字節輸入流提供一個標準、和基本的與讀取字節有關的方法及簡單的實現。

FileInputStream:文件字節輸入流以字節的形式將文件中數據讀取到應用中;

BufferedInputStream:緩沖字節輸入流,提供緩沖功能,提高效率;

ByteArrayInputStream:字節數組輸入流用于讀取其內置緩存字節數組中的字節;

PipedInputStream:管道字節輸入流必須與PipedOutputStream結合使用,用于線程之間的通信;

FilterInputStream:過濾器字節輸入流,重寫InputStream方法,為字節輸入處理流提供擴展;

DataInputStream:數據字節輸入流,一般與DataOutputStream結合使用;

ObjectInputStream:對象字節輸入流,與ObjectOutputStream結合使用;

2、字節輸出流

OutputStream:字節輸出流,InputStream作用一樣,為所有字節輸出流提供一個標準、定義了一些基本輸出字節的方法與簡單實現;

FileOutputStream:文件字節輸出流,將字節寫入指定目標的文件源中;

BufferedOutputStream:緩沖字節輸出流,提供緩沖功能、提高效率;

ByteArrayOutputStream:字節數組輸出流,將字節寫入到其本身所帶的一個內置緩存字節數組中;

PipedoutputStream:管道字節輸出流,必須與PipedInputStream結合使用、用于線程之間的通信;

FilterOutputStream:過濾字節輸出流,為字節輸出處理流提供擴展;

DataOutputStream: 數據字節輸出流,一般與DataInputStream結合使用;

ObjectOutputStream:對象字節輸出流,通常與ObjectInputStream結合使用;

PrintStream:字節打印流,字節輸出流進行裝飾、提供打印各種數據類型的功能;

3、字符輸入流

Reader:字符輸入流,為所有字符輸入流提供一個標準、只有基本的讀取方法的定義和簡單的實現;

InputStreamReader:字節轉換流,將字節流轉換成字符流,并且可以指定字節轉成字符時使用的編碼;

BufferedReader:緩沖字符輸入流,為字符輸入流提供緩沖功能、提高效率;

CharArrayReader:字符數組輸入流,將其內置字符緩存數組中的數據讀取到應用中;

PipedReader:管道字符輸入流,與PipedWriter結合使用、用于線程之間的通信;

FilterReader:過濾字符輸入流,為字符輸入流提供擴展;

FileReader:文件字符輸入流,字符的形式讀取文件中的內容;

4、字符輸出流

Writer:字符輸出流,所有字符輸出流提供一個標準,基本寫入的方法和簡單的實現;

OutputStreamWriter:字節輸出轉換流,用于將字節輸出流轉化成字符輸出流。可以指定編碼轉化;

BufferedWriter:緩存字符輸出流,提供緩沖功能、提高效率;

CharArrayWriter:字符輸出流,用于將字符寫入其內置緩存字符數組中;

PipedWriter:管道字符輸出流,與PipedReader結合使用,用于線程之間的通信;

FileWriter:文件字符輸出流,用于將字符寫入到指定文件中;

PrintWriter:字符打印流,將各種數據以字符的形式打印;

三、File文件類

1、構造方法

File(String pathname):指定文件或者文件夾的路徑創建一個File文件;

File(File parent,String child):根據parent抽象路徑名和child路徑名字符創建新的File實例;

2、路徑問題

絕對路徑:該文件在硬盤上的完整路徑。絕對路徑一般都是以盤符開頭的。

相對路徑: 相對路徑就是資源文件相對于當前程序所在的路徑。

. 當前路徑

… 上一級路徑

3、文件的創建

createNewFile():在指定位置創建一個空文件,成功返回true,已存在就不創建然后返回false;

mkdir():在指定位置創建目錄,這只會創建最后一級目錄,上級目錄不存在就拋異常;

mkdirs():在指定位置創建目錄,這會創建路徑中所有不存在的目錄;

4、刪除文件

delete() 刪除文件或者一個空的文件夾,如果文件夾且不為空,則不能刪除,成功返回true,失敗返回false;

5、判斷方法

exists():文件或文件夾是否存在;

isFile():是否是一個文件,如果不存在,則始終為false;

isDirectory():是否是一個目錄,如果不存在,則始終是false;

6、獲取文件信息

getName():獲取文件或文件夾名稱,不包含上級路徑;

getPath():返回絕對路徑,可以是相對路徑,但是目錄要指定

四、編碼解碼

字節流讀取的是文件中的二進制數據,不會自動轉為可以看懂的字符;字符流:把讀到的數據進行對應的編碼與解碼。

五、源代碼地址

GitHub·地址 https://github.com/cicadasmile GitEE·地址 https://gitee.com/cicadasmile

推薦閱讀:編程體系整理

序號項目名稱GitHub地址GitEE地址推薦指數
01Java描述設計模式,算法,數據結構GitHub·點這里GitEE·點這里☆☆☆☆☆
02Java基礎、并發、面向對象、Web開發GitHub·點這里GitEE·點這里☆☆☆☆
03SpringCloud微服務基礎組件案例詳解GitHub·點這里GitEE·點這里☆☆☆
04SpringCloud微服務架構實戰綜合案例GitHub·點這里GitEE·點這里☆☆☆☆☆
05SpringBoot框架基礎應用入門到進階GitHub·點這里GitEE·點這里☆☆☆☆
06SpringBoot框架整合開發常用中間件GitHub·點這里GitEE·點這里☆☆☆☆☆
07數據管理、分布式、架構設計基礎案例GitHub·點這里GitEE·點這里☆☆☆☆☆
08大數據系列、存儲、組件、計算等框架GitHub·點這里GitEE·點這里☆☆☆☆☆

總結

以上是生活随笔為你收集整理的编程体系结构(04):JavaIO流文件管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。