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

  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • Google Chrome

    Google Chrom

    1 EYLÜL 2008
  • majesticdubstep

    majesticdubs

    3 Kasım 2011