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
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
- Validating input using java.util.Scanner - daha fazla normal kullanımda pek çok örnek var
Üçü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
String toString(File, Charset)
- Verilen karakteri kullanarak
String
içine bir dosyadan tüm karakter kümesi okur
- Verilen karakteri kullanarak
List<String> readLines(File, Charset)
- ... satır başına* *22, tek bir giriş içine bir dosyadan tüm satırları okur
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
- Belirtilen karakter kodlaması kullanarak,
List readLines(InputStream, String encoding)
- ... (raw) olarak 28* *satır başına
String
bir giriş
- ... (raw) olarak 28* *satır başına
İkinci en büyük değeri bulmak için bas...
Ve en sağlam, en basit şekilde kullanı...
En basit standart C içinde bir Segfaul...
Ruby basit / zarif bir şekilde eğer be...
Kurallı, isim, basit isim ve Java Ders...