Bagaimana saya bisa mengubah String
nilai menjadi InputStreamReader
?
281
ByteArrayInputStream juga melakukan trik:
InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );
Kemudian konversi ke pembaca:
InputStreamReader reader = new InputStreamReader(is);
ByteArrayInputStream
: Sejak: JDK1.0 Tidak ada alasan sedikit pun untuk menganggap bahwa kelas ini adalah "sejak Java 1.4". Nomor versi yang salah itu sangat aneh karena Java 1.4 diperkenalkanNIO
dan tidak masuk akal untuk memperkenalkan API dan penerus konsepnya dalam versi yang sama.Saya juga menemukan kelas apache commons
IOUtils
, jadi:sumber
new InputStreamReader(IOUtils.toInputStream(myString, "UTF-16"), "UTF-16")
akan rugi.String
menjadibyte[]
array untuk mengkonversi byte kembali kechar
s kemudian ...Apakah harus secara khusus InputStreamReader? Bagaimana kalau menggunakan StringReader ?
Kalau tidak, Anda bisa menggunakan StringBufferInputStream , tetapi sudah usang karena masalah konversi karakter (itulah sebabnya Anda harus lebih suka StringReader).
sumber
Pertanyaan yang sama dengan @Dan - mengapa tidak StringReader?
Jika itu harus InputStreamReader, maka:
sumber
byte[] bytes = charset.getBytes();
Apakah Anda mencoba untuk mendapatkan)
Reader
fungsionalitas keluarInputStreamReader
, atau b)InputStream
fungsionalitas keluarInputStreamReader
? Anda tidak akan mendapatkan b).InputStreamReader
bukanInputStream
.Tujuannya
InputStreamReader
adalah untuk mengambilInputStream
- sumber byte - dan mendekode byte ke karakter dalam bentuk aReader
. Anda sudah memiliki data Anda sebagai karakter (String asli Anda). Pengkodean String Anda ke dalam byte dan decoding byte kembali ke karakter akan menjadi operasi yang berlebihan.Jika Anda mencoba untuk
Reader
keluar dari sumber Anda, gunakanStringReader
.Jika Anda mencoba untuk mendapatkan
InputStream
(yang hanya memberi Anda byte), gunakan apache commonsIOUtils.toInputStream(..)
seperti yang disarankan oleh jawaban lain di sini.sumber
Anda dapat mencoba Cactoos :
Kemudian, jika Anda membutuhkan
Reader
:sumber