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

  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • Kurtindo Pop Games

    Kurtindo Pop

    2 HAZİRAN 2013
  • ThePointblank

    ThePointblan

    18 Aralık 2006