Nasıl bir java alabilir miyim.ıo.Bir java İnputStream.lang.Dize?
InputStream
olarak kullanmak istiyorum String
bir ben var. Java java.io.StringBufferInputStream
, kullanabilirsin ama @Deprecrated
olmuştur 1.0, (iyi bir neden ile yapamazsınız karakter kodlamasını ayarlamak belirtin):
Bu sınıf düzgün dönüştürmez bayt karakter. Yapışkan notlar 1.1, bir akış oluşturmak için tercih edilen yolu bir dize
StringReader
) sınıf.
java.io.StringReader
java.io.Reader
bir oluşturabilirsiniz ama Reader
alıp InputStream
Bir oluşturmak için adaptörleri vardır.
ancient bug uygun bir yerine sorup buldum, ama böyle bir şey söyleyebilirim de var.
Sık sık önerilen çözüm java.io.ByteArrayInputStream
giriş java.lang.String.getBytes()
kullanmak için:
public InputStream createInputStream(String s, String charset)
throws java.io.UnsupportedEncodingException {
return new ByteArrayInputStream(s.getBytes(charset));
}
ama bu, bir bayt dizisi olarak bellekte String
tüm hayata anlamına gelir, ve bir dere amacı yendi. Çoğu durumda da bu büyütülecek bir şey değil, ama aradığım şey bu olurdu korumak amacıyla bir akarsu--bu kadar az veri olarak mevcut (re)hayata hafıza.
CEVAP
Güncelleme:Bu cevap OP istemediği şey tam da budur. Lütfen okuyun diğer cevaplar.
Verileri yeniden hayata hafıza olmak umurumuzda değil bu durumlar için, kullanın lütfen
new ByteArrayInputStream(str.getBytes("UTF-8"))
Java nasıl bir Dize ped alabilir miyim...
Nasıl Java artış bir gün bir randevu a...
Nasıl Java UTC veya GMT geçerli tarih ...
Nasıl Java MD5 parmak izini alın'...
Nasıl Dize değeri bir Java numaralama ...