Java 字元流和位元組流-學習筆記
阿新 • • 發佈:2019-02-04
一:字元流
Reader和Writer(基類)
FileReader和FileWriter(定義字元輸入、輸出流)
BufferedReader和BufferedWriter(字元帶緩衝輸入、輸出流)
LineNumberReader
二:字元流拷貝檔案,4中方式
1.FileReader和FileWriter逐個字元拷貝
2.FileReader和FileWriter自定義陣列拷貝
3.BufferedReader和BufferedWriter內建緩衝區逐個字元拷貝
4.BufferedReader和BufferedWriter逐行拷貝
三:位元組流
OutputStream和InputStream(基類)
FileOutputStream和FileInputStream(位元組帶緩衝輸入、輸出流)
BufferedInputStream和BufferedOutputStream(位元組緩衝輸入、輸出流)
四:字元流拷貝檔案,3種方式
1.FileInputStream和FileOutputStream, 逐個位元組拷貝
2.FileInputStream和FileOutputStream, 自定義陣列拷貝
3.BufferedInputStream和BufferedOutputStream, 內建緩衝區拷貝
五:什麼時候使用字元流,位元組流
當讀取和寫出一個字串,使用字元流
當拷貝一個字串,使用位元組流
在我們讀寫任何資料的時候, 都能用位元組流來做. 但是如果需要讀寫字元的時候, 使用位元組流的話, 需要人工解碼編碼.
當我們讀寫字元的時候, 使用字元流更為方便, 它可以替我們自動解碼編碼.
當我們得到一個位元組流, 需要向這個位元組流中讀寫字元資料, 可以使用轉換流將位元組流轉為字元流.
六:轉換流
1.InputStreamReader, OutputStreamWriter
2.位元組流和字元流之間的橋樑, 可以從位元組流中讀取字元, 可以向位元組流中寫出字元
七:什麼時候用轉換流和編碼
1.當我們得到一個位元組輸入流, 想從中讀取字元的時候, 就可以使用InputStreamReader.
2.當我們得到一個位元組輸出流, 想向其寫出字元的時候, 就可以使用OutputStreamWriter.
3.當我們讀取非平臺預設編碼的字元資料時, 需要使用InputStreamReader.
4.當我們寫出非平臺預設編碼的字元資料時, 需要使用OutputStreamWriter.
八.標準輸入、輸出流
1.標準輸入流
System.in是標準輸入流, 預設可以從鍵盤輸入讀取位元組資料.
可以使用System.setIn(InputStream)修改資料來源.
2.標準輸出流
System.out是標準輸出流, 預設可以向螢幕輸出資料
可以使用System.setOut(PrintStream)修改資料目的地.
3.可以使用標準輸入輸出流拷貝檔案
練習:1.加密
九.位元組流和字元流的三種讀取方式
位元組流讀取方式:
//第一種,是一個位元組、一個位元組的的讀,然後讀到記憶體中, 然後一個一個的寫出,速度最慢
//第二種,是一個位元組、一個位元組 的讀,讀到陣列中,讀滿後,一塊寫出,速度最快(每次讀到程式中一個數組, 寫出去一個數組)
//第三種,是一個位元組、一個位元組的讀,先讀到內建的緩衝去中,然後一個一個的寫出,速度很快(第一次讀的時候讀8192個, 每次read()和write()方法時從緩衝區中讀到1個寫再寫到緩衝區中1個)
字元流的讀寫方式
基本和位元組流一樣,但它讀寫的是字元
Reader和Writer(基類)
FileReader和FileWriter(定義字元輸入、輸出流)
BufferedReader和BufferedWriter(字元帶緩衝輸入、輸出流)
LineNumberReader
二:字元流拷貝檔案,4中方式
1.FileReader和FileWriter逐個字元拷貝
2.FileReader和FileWriter自定義陣列拷貝
3.BufferedReader和BufferedWriter內建緩衝區逐個字元拷貝
4.BufferedReader和BufferedWriter逐行拷貝
三:位元組流
OutputStream和InputStream(基類)
FileOutputStream和FileInputStream(位元組帶緩衝輸入、輸出流)
BufferedInputStream和BufferedOutputStream(位元組緩衝輸入、輸出流)
四:字元流拷貝檔案,3種方式
1.FileInputStream和FileOutputStream, 逐個位元組拷貝
2.FileInputStream和FileOutputStream, 自定義陣列拷貝
3.BufferedInputStream和BufferedOutputStream, 內建緩衝區拷貝
五:什麼時候使用字元流,位元組流
當讀取和寫出一個字串,使用字元流
當拷貝一個字串,使用位元組流
在我們讀寫任何資料的時候, 都能用位元組流來做. 但是如果需要讀寫字元的時候, 使用位元組流的話, 需要人工解碼編碼.
當我們讀寫字元的時候, 使用字元流更為方便, 它可以替我們自動解碼編碼.
當我們得到一個位元組流, 需要向這個位元組流中讀寫字元資料, 可以使用轉換流將位元組流轉為字元流.
六:轉換流
1.InputStreamReader, OutputStreamWriter
2.位元組流和字元流之間的橋樑, 可以從位元組流中讀取字元, 可以向位元組流中寫出字元
七:什麼時候用轉換流和編碼
1.當我們得到一個位元組輸入流, 想從中讀取字元的時候, 就可以使用InputStreamReader.
2.當我們得到一個位元組輸出流, 想向其寫出字元的時候, 就可以使用OutputStreamWriter.
3.當我們讀取非平臺預設編碼的字元資料時, 需要使用InputStreamReader.
4.當我們寫出非平臺預設編碼的字元資料時, 需要使用OutputStreamWriter.
八.標準輸入、輸出流
1.標準輸入流
System.in是標準輸入流, 預設可以從鍵盤輸入讀取位元組資料.
可以使用System.setIn(InputStream)修改資料來源.
2.標準輸出流
System.out是標準輸出流, 預設可以向螢幕輸出資料
可以使用System.setOut(PrintStream)修改資料目的地.
3.可以使用標準輸入輸出流拷貝檔案
練習:1.加密
九.位元組流和字元流的三種讀取方式
位元組流讀取方式:
//第一種,是一個位元組、一個位元組的的讀,然後讀到記憶體中, 然後一個一個的寫出,速度最慢
//第二種,是一個位元組、一個位元組 的讀,讀到陣列中,讀滿後,一塊寫出,速度最快(每次讀到程式中一個數組, 寫出去一個數組)
//第三種,是一個位元組、一個位元組的讀,先讀到內建的緩衝去中,然後一個一個的寫出,速度很快(第一次讀的時候讀8192個, 每次read()和write()方法時從緩衝區中讀到1個寫再寫到緩衝區中1個)
字元流的讀寫方式
基本和位元組流一樣,但它讀寫的是字元