**字元輸入流:**
*public inputstreamreader(inputstream in):預設的編碼格式(一般使用這個)*
public inputstreamreader(inputstream in,string charsetname):指定的編碼格式
字元輸入流= 位元組輸入流+ 編碼表:將位元組流轉換成字元流
轉換流:非常麻煩,本身就比**書寫量大
便捷類:
*filereader(file file);(建議使用)*
常用的方法:
public int read():讀取單個字元
public int read(char cbuf, int offset,int length):讀取字元陣列(讀取的是實際長度)
**字元輸出流:**
public outputstreamwriter(outputstream out):預設編碼:採用的格式:gbk格式
public outputstreamwriter(outputstream out,charset cs):指定編碼表
有5個寫資料的方法:
public void write(int c):寫單個字元
public void write(char cbuf):寫乙個字元陣列
public abstract void write(char cbuf, int off,int len):字元陣列的一部分
public void write(string str):寫字串
public void write(string str, int off,int len):寫一部分字串
flush():重新整理該流的緩衝!
面試題:close()方法和flush()方法的區別?
close():關閉跟該流相關的資源,並且關閉之前,一定要重新整理,防止出現沒有寫進去的情況,關閉之後不能在寫資料了!
flush():重新整理緩衝的流,重新整理之後,還可以給檔案中寫資料
需求: 將e:\\a.txt檔案讀取到e:\\b.txt檔案中
**: public static void main(string args)
//一次讀取乙個字元陣列
char ch = new char[1024];
int len;
while((len = isd.read(ch))!= -1)
isd.close();
osw.close();
}
string類的方法:
public byte getbytes(charset charset) throws unsupportedencodingexception :將string型別轉換成位元組陣列:編碼
把能看懂的編寫成了看不懂的資料
public string(byte bytes,string charsetname):將byle型別的陣列轉換成string型別:解碼
把看不懂的資料轉換成了乙個能懂的字串
舉例:諜戰片(傳送端和接收端)
傳送:今天老地方見
能看懂的資料—>看不懂的 : 編碼
今—->位元組陣列—數值—->二進位制資料
接收的:
看不懂的公升級--->能看懂的字串 : 解碼
二進位制資料---->十進位制---->數值----->string型別的字串: 今
今天老地方見!
編碼解碼的問題很簡單:解碼編碼只要保證他們的編碼格式一致,就不會出現亂碼的情況!
**:
public static void main(string args)throws unsupportedencodingexception
結果:
[-50, -46, -80, -82, -60, -29]
~~~~~~~~~
我愛你
IO流,字元流,位元組流,轉換流
io流的分類 輸入流 輸出流 說明 位元組流 inputstream outputstream 位元組流是處理位元組的 二進位制 字元流 reader writer 字元流是處理字元的 注 這幾個類都是抽象類。io解決問題 解決裝置與裝置之間 的資料傳輸問題。比如 硬碟 記憶體 記憶體 硬碟 輸入位...
I O流(轉換流)
轉換流其實聽名字就不是很難理解 比如位元組流轉字元流 這裡我就不再演示輸出結果了,這一篇部落格我沒有驗證我寫的 不過一般是沒有多大問題的,就算有自己花點時間除錯一下就好了,不要太懶。還有就是記得包含上指定的包,要不然肯定會報錯的。這裡建議大家還是不要偷懶自己弄幾個檔案敲一下 執行下。這裡我們可能只會...
Java IO 二 IO流 處理流 轉換流
io流 處理流 轉換流 1.轉換流 位元組流轉換為字元流,為了處理亂碼 編碼集 解碼集 2.編碼與解碼的概念 1 編碼 字元 編碼字符集 二進位制 2 解碼 二進位制 解碼字符集 字元 3.亂碼的原因 1 編碼和解碼的字符集的不統一 解碼 byte char 我的ide預設解碼字符集為gbk str...