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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007