java最全基礎(chǔ)知識(shí) “字節(jié)流”與“字符流”有什么區(qū)別?
“字節(jié)流”與“字符流”有什么區(qū)別?字節(jié)流和字符流的主要區(qū)別在于它們的處理方法。字節(jié)流是最基本的,采用ASCII編碼。InputStream和OutputStream的所有子類都主要用來處理二進(jìn)制數(shù)據(jù),
“字節(jié)流”與“字符流”有什么區(qū)別?
字節(jié)流和字符流的主要區(qū)別在于它們的處理方法。字節(jié)流是最基本的,采用ASCII編碼。InputStream和OutputStream的所有子類都主要用來處理二進(jìn)制數(shù)據(jù),二進(jìn)制數(shù)據(jù)是按字節(jié)處理的,而現(xiàn)實(shí)中很多數(shù)據(jù)是文本,因此提出了字符流的概念,采用Unicode編碼。它根據(jù)虛擬機(jī)的編碼方式進(jìn)行處理,即對(duì)字符集進(jìn)行變換。兩者通過inputstreamreader和outputstreamwriter進(jìn)行關(guān)聯(lián),實(shí)際上是通過byte[]和string來處理char對(duì)象,byte stream用來處理byte對(duì)象。如果目標(biāo)對(duì)象不同,處理方法也會(huì)不同。字符流處理的基本單位是字符(Java中的字符是16位的),輸入流基于讀寫器,輸出流基于寫器;字節(jié)流的基本單位是字節(jié)(Java中的字節(jié)是8位的),輸入流基于InputStream,輸出流基于OutputStream;