IO 流
Input / Output 流(Stream)
1,概念: 類比水流。 數據從一個位置, 流向另外一個位置。 數據的傳輸。
2,分類:<重點>
流向 : 以程序爲立場
輸入流: 數據進入程序
通常狀況讀入數據
輸出流: 數據從程序中出去(保存到本地, 上傳數據)
寫出
單位
Bit (位), 0,1
Byte(字節), 8個位
字節流: 每次操做的是1個字節
字符流: 每次操做的是字符 , 2個字節, 16位 (操做的中文)
功能
節點流: 直接接觸數據源的流
處理流: 也叫過濾流, 沒有直接接觸數據, 而是嵌套在別的流之上
3, 4大基類(父類)流
InputStream 字節輸入流
OutputStream 字節輸出流
Reader 字符輸入流
Writer 字符的輸出流
4, 流的操做步驟
1, 肯定數據源
2, 肯定流向, 肯定子類
3, 操做流
4, 關閉流
5, InputStream 讀的操做
read()
int, 用於讀取一個字節, 返回值是讀取數據的自己, 若是讀取到末尾, 返回-1
* read(byte[] b)
int , 用於讀取數據, 最多讀取的長度是b.length的長度, 數據存入數組中
返回值是實際讀取到的內容的長度 len
若是讀取到末尾, 返回-1
read(byte[] , int off,int len)
int , 用於讀取數據,最多的讀取len個, 數據也是存入到數組中,
從下標爲off的位置開始存儲,
返回值是實際讀取的長度 len
若是讀取到末尾, 返回-1
6, OutputStream 寫的操做
保存數據到本地文件中, 若是文件不存在, 輸出流會自定建立一個文件, 而後在寫出內容
可是若是目錄不存在, 那麼會拋出異常
write(int)
void , 將參數所表示的內容寫出, 該方法執行一次, 表示寫出了一個字節
* write(byte[])
void, 將參數所表示的字節數組中的數據, 所有寫出
write(byte[] b,int off,int len)
void , 將參賽所表示的字節數據中的數據, 部分寫出,
從數組的下標爲off開始, 寫len長度
String 類
字節數組:getBytes() byte[]
字符數組:toCharArray() char[]
6, 字符流 --- 以字符爲單位 Reader
read()
int , 讀入一個字符, 返回值是讀取的數據, 讀到末尾返回-1
read(char[] cr)
int , 一次讀取多個字符, 最多讀取到的是數組長度的個數, 實際讀到的長度,
是 方法的返回值 len, 數據存入數組中, 讀到末尾返回-1
read(char[] cr, int off,int len)
int , 一次讀入多個字符, 最多讀取len的長度, 實際讀入的數量是方法的返回值
從off下標開始存入數組中, 若是讀取到末尾返回-1
7, 字符流 -- 以字符爲單位 寫出數據 Writer數組