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

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007