SORU
4 AĞUSTOS 2010, ÇARŞAMBA


En basit dizeye nedir?

Bir Dize içine basit bir metin dosyası okumak için çalışıyorum. Tabii ki giriş akışı alma ve yineleme seçeneği ile her zamanki yolu var() ve String. içine içeriğini okuma

Geçmişte yüzlerce kez yaptıktan sonra, ben bunu nasıl yapabilirim kod az hatları merak ettiniz mi? .. ** 1 gibi Java'da bir şey bu kadar basit görünen bir şey değil mi?

Böyle basitleştirmeleri sağlayan Apache Commons İO gibi kütüphaneler hatta basit Açıklama bir sınıf bunu yapmak için yazabilirim olduğunu biliyorum. Merak ediyorum hepsi bu ama bu herkes ihtiyacı olduğu kadar sık bir operasyon neden böyle basit işlevi sağlar Java değil mi? Orada gerçekten tek bir yöntem, bir yerlerde bazı varsayılan veya belirtilen kodlama ile dize içine bir dosya okumak için değil mi?

CEVAP
4 AĞUSTOS 2010, ÇARŞAMBA


Evet, tek satırda bunu yapabilirsiniz (sağlam IOException kullanım olsa istemem).

String content = new Scanner(new File("filename")).useDelimiter("\\Z").next();
System.out.println(content);

Bu ** 30, giriş sınırlandırmak için söylüyorum dize çapa sonu olan, \Z ile kullanır. Bu sonuçta giriş next() bir telefon ile okunabilir tüm dosya olan bir gerçek simgesi var, yapar.

File String charSetName (diğer pek çok aşırı arasında) alır a constructor var. Bu iki kurucu FileNotFoundException ama Scanner tüm yöntemler gibi, IOException Hayır bu kurucular ötesinde atılabilir atabilir.

IOException meydana gelen bir veya ioException() yöntemle Scanner kendisi sorgulayabilirsiniz. Ayrıca açıkça içeriği okuduktan sonra 33 ** Scanner olabilir, belki de yerel bir değişken Scanner referans saklamak en iyisidir.

Ayrıca Bkz

İlgili sorular


Üçüncü taraf kitaplığı seçenekleri

Bütünlüğü için, bu çok saygın ve son derece faydalı bu üçüncü parti kütüphaneler varsa gerçekten iyi bir seçenek

Guava

com.google.common.io.Files birçok yararlı yöntemler içerir. İlgili olanlar burada

Apache Commons/IO

org.apache.commons.io.IOUtils da benzer bir işlevsellik sunuyor:

  • String toString(InputStream, String encoding)
    • Belirtilen karakter kodlaması kullanarak, String InputStream bir içeriğini alır
  • List readLines(InputStream, String encoding)
    • ... (raw) olarak 28* *satır başına String bir giriş

İlgili sorular

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Attempts at least

    Attempts at

    1 Ocak 2007
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006
  • tutvid

    tutvid

    19 AĞUSTOS 2006