看到InputStreamReader和OutputStreamWriter的一些说法,
说InputStreamReader是将字节流转换成字符流,而OutputStreamWriter则相反,是将字符流转换成字节流;
但是
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("xxxx")));
这句代码中,明显OutputStreamWriter接收的是一个字节流,而返回的则是个字符流,
所以上面的说法应该是错误的吧?
Um...ini...
Parameter input kaedah pembina OutputStreamWriter ialah strim bait OutputStream, yang bermaksud menukar OutputStream kepada OutputStreamWriter Dari perspektif ini, ia adalah "menukar strim bait ke aliran watak" .
Apabila OutputStreamWriter menulis, anda menghantar aksara, tetapi pada akhirnya IO menulis strim bait Dari perspektif ini, ia "menukar strim aksara kepada strim bait".
Jadi kedua-dua pernyataan adalah betul.
"Tukar strim bait kepada strim aksara" merujuk kepada penukaran API, "Tukar strim aksara kepada strim bait" merujuk kepada penukaran data semasa penulisan.
Malah, anda hanya perlu tahu bahawa komputer itu sendiri hanya menyokong bait binari seperti 01010101, dan aksara atau rentetan diperoleh melalui pengekodan bait OutputStreamWriter hanyalah satu lagi operasi pengekodan.
Membina OutputStreamWriter adalah FileOutputStream. Walau bagaimanapun, apabila menulis operasi kepada penulis, rentetan itu ditulis, dan penulis akan menukar rentetan lulus ke aliran karakter ke dalam aliran ... jadi ...