本文源碼:GitHub·點這裏 || GitEE·點這裏java
一、分類角度git
流的方向github
流數據類型算法
流的角色spring
二、API體系編程
5個核心類ObjectOutputStream:File、OutputStream、InputStream、Writer、Reader;設計模式
1關鍵接口:Serializable;數組
一、字節輸入流緩存
InputStream:字節輸入流是全部字節輸入流的父類、爲全部字節輸入流提供一個標準、和基本的與讀取字節有關的方法及簡單的實現。數據結構
FileInputStream:文件字節輸入流以字節的形式將文件中數據讀取到應用中;
BufferedInputStream:緩衝字節輸入流,提供緩衝功能,提升效率;
ByteArrayInputStream:字節數組輸入流用於讀取其內置緩存字節數組中的字節;
PipedInputStream:管道字節輸入流必須與PipedOutputStream結合使用,用於線程之間的通訊;
FilterInputStream:過濾器字節輸入流,重寫InputStream方法,爲字節輸入處理流提供擴展;
DataInputStream:數據字節輸入流,通常與DataOutputStream結合使用;
ObjectInputStream:對象字節輸入流,與ObjectOutputStream結合使用;
二、字節輸出流
OutputStream:字節輸出流,InputStream做用同樣,爲全部字節輸出流提供一個標準、定義了一些基本輸出字節的方法與簡單實現;
FileOutputStream:文件字節輸出流,將字節寫入指定目標的文件源中;
BufferedOutputStream:緩衝字節輸出流,提供緩衝功能、提升效率;
ByteArrayOutputStream:字節數組輸出流,將字節寫入到其自己所帶的一個內置緩存字節數組中;
PipedoutputStream:管道字節輸出流,必須與PipedInputStream結合使用、用於線程之間的通訊;
FilterOutputStream:過濾字節輸出流,爲字節輸出處理流提供擴展;
DataOutputStream: 數據字節輸出流,通常與DataInputStream結合使用;
ObjectOutputStream:對象字節輸出流,一般與ObjectInputStream結合使用;
PrintStream:字節打印流,字節輸出流進行裝飾、提供打印各類數據類型的功能;
三、字符輸入流
Reader:字符輸入流,爲全部字符輸入流提供一個標準、只有基本的讀取方法的定義和簡單的實現;
InputStreamReader:字節轉換流,將字節流轉換成字符流,而且能夠指定字節轉成字符時使用的編碼;
BufferedReader:緩衝字符輸入流,爲字符輸入流提供緩衝功能、提升效率;
CharArrayReader:字符數組輸入流,將其內置字符緩存數組中的數據讀取到應用中;
PipedReader:管道字符輸入流,與PipedWriter結合使用、用於線程之間的通訊;
FilterReader:過濾字符輸入流,爲字符輸入流提供擴展;
FileReader:文件字符輸入流,字符的形式讀取文件中的內容;
四、字符輸出流
Writer:字符輸出流,全部字符輸出流提供一個標準,基本寫入的方法和簡單的實現;
OutputStreamWriter:字節輸出轉換流,用於將字節輸出流轉化成字符輸出流。能夠指定編碼轉化;
BufferedWriter:緩存字符輸出流,提供緩衝功能、提升效率;
CharArrayWriter:字符輸出流,用於將字符寫入其內置緩存字符數組中;
PipedWriter:管道字符輸出流,與PipedReader結合使用,用於線程之間的通訊;
FileWriter:文件字符輸出流,用於將字符寫入到指定文件中;
PrintWriter:字符打印流,將各類數據以字符的形式打印;
一、構造方法
File(String pathname):指定文件或者文件夾的路徑建立一個File文件;
File(File parent,String child):根據parent抽象路徑名和child路徑名字符建立新的File實例;
二、路徑問題
絕對路徑:該文件在硬盤上的完整路徑。絕對路徑通常都是以盤符開頭的。
相對路徑: 相對路徑就是資源文件相對於當前程序所在的路徑。
. 當前路徑
.. 上一級路徑
三、文件的建立
createNewFile():在指定位置建立一個空文件,成功返回true,已存在就不建立而後返回false;
mkdir():在指定位置建立目錄,這隻會建立最後一級目錄,上級目錄不存在就拋異常;
mkdirs():在指定位置建立目錄,這會建立路徑中全部不存在的目錄;
四、刪除文件
delete() 刪除文件或者一個空的文件夾,若是文件夾且不爲空,則不能刪除,成功返回true,失敗返回false;
五、判斷方法
exists():文件或文件夾是否存在;
isFile():是不是一個文件,若是不存在,則始終爲false;
isDirectory():是不是一個目錄,若是不存在,則始終是false;
六、獲取文件信息
getName():獲取文件或文件夾名稱,不包含上級路徑;
getPath():返回絕對路徑,能夠是相對路徑,可是目錄要指定
字節流讀取的是文件中的二進制數據,不會自動轉爲能夠看懂的字符;字符流:把讀到的數據進行對應的編碼與解碼。
GitHub·地址 https://github.com/cicadasmile GitEE·地址 https://gitee.com/cicadasmile
推薦閱讀:編程體系整理
序號 | 項目名稱 | GitHub地址 | GitEE地址 | 推薦指數 |
---|---|---|---|---|
01 | Java描述設計模式,算法,數據結構 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
02 | Java基礎、併發、面向對象、Web開發 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆ |
03 | SpringCloud微服務基礎組件案例詳解 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆ |
04 | SpringCloud微服務架構實戰綜合案例 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
05 | SpringBoot框架基礎應用入門到進階 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆ |
06 | SpringBoot框架整合開發經常使用中間件 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
07 | 數據管理、分佈式、架構設計基礎案例 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |
08 | 大數據系列、存儲、組件、計算等框架 | GitHub·點這裏 | GitEE·點這裏 | ☆☆☆☆☆ |