Kullanmak Stringistediğim bir InputStream. Java 1.0'da kullanabilirsiniz java.io.StringBufferInputStream, ancak bunu kullanabilirsiniz @Deprecrated(iyi bir nedenle - karakter seti kodlamasını belirleyemezsiniz):
Bu sınıf, karakterleri düzgün şekilde bayta dönüştürmez. JDK 1.1'den itibaren, bir dizeden akım yaratmanın tercih edilen yolu
StringReadersınıf yoluyladır.
Bir java.io.Readerile oluşturabilirsiniz java.io.StringReader, ancak Readerbir InputStream.
Uygun bir yedek isteyen eski bir böcek buldum , ancak söyleyebileceğim kadarıyla böyle bir şey yok.
Sıklıkla önerilen geçici çözüm, aşağıdakiler için java.lang.String.getBytes()girdi olarak kullanmaktır java.io.ByteArrayInputStream:
public InputStream createInputStream(String s, String charset)
throws java.io.UnsupportedEncodingException {
return new ByteArrayInputStream(s.getBytes(charset));
}
ancak bu String, bellekteki bütünün bir bayt dizisi olarak somutlaştırılması anlamına gelir ve bir akışın amacını bozar. Çoğu durumda bu büyük bir sorun değil, ancak bir akışın amacını koruyacak bir şey arıyordum - mümkün olduğunca az verinin bellekte (yeniden) somutlaştırılması.