SORU
8 Mayıs 2009, Cuma


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
2 Ocak 2013, ÇARŞAMBA


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"))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006