Java'da bir InputStream'i bir String'e nasıl okuyabilirim / dönüştürebilirim?
Eğer bir java.io.InputStream
nesneniz varsa, bu nesneyi nasıl işlemeli ve bir String
üretmelisiniz?
Diyelim ki metin verileri içeren bir InputStream
im var ve bunu bir String
e dönüştürmek istiyorum, böylece örneğin bunu bir günlük dosyasına yazabilirim.
InputStreami alıp
String`e dönüştürmenin en kolay yolu nedir?
public String convertStreamToString(InputStream is) {
// ???
}
3842
3
Bunu yapmanın güzel bir yolu Apache commons
IOUtils
kullanarakInputStream
'i birStringWriter
içine kopyalamaktır... gibi bir şeyhatta
Alternatif olarak, Akışlarınızı ve Yazarlarınızı karıştırmak istemiyorsanız
ByteArrayOutputStream
kullanabilirsinizApache Commons izin verir:
Elbette UTF-8 dışında başka karakter kodlamaları da seçebilirsiniz.
Ayrıca bak: (dokümantasyon)
Dosya dikkate alınarak önce bir
java.io.Reader
örneği alınmalıdır. Bu daha sonra okunabilir ve birStringBuilder
a eklenebilir (birden fazla iş parçacığında erişmiyorsakStringBuffer
a ihtiyacımız yoktur veStringBuilder
daha hızlıdır). Buradaki püf noktası, bloklar halinde çalışmamız ve bu nedenle başka tamponlama akışlarına ihtiyaç duymamamızdır. Blok boyutu, çalışma zamanı performans optimizasyonu için parametrelendirilmiştir.