SORU
17 Ocak 2011, PAZARTESİ


İyi bir metin okumak için Java dosya yolu?

Ve dosyaları kullanarak veri okumak ve yazmak için birkaç farklı yolu vardır gibi görünüyor.

Bir dosyadan ASCII veri okumaya çalışıyorum. En iyi yolu nedir karar verebilirim ki farklar nelerdir?

CEVAP
17 Ocak 2011, PAZARTESİ


Küçük bir dosya okumak için benim en sevdiğim yolu bir BufferedReader ve bir StringBuilder kullanın. Çok basit ve nokta (gerçi özellikle etkili, ama çoğu için yeterince iyi değil):

BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
} finally {
    br.close();
}

Biraz sonra Java 7 try-with-resources (yani otomatik kapat) özellikleri kullanmanız gerektiğini işaret etti:

try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
}

Bu dizeler okudum, ben genelde çizgi neyse, her dize işleme yapmak istiyorum, o zaman bu uygulama için gidin.

Eğer gerçekten sadece bir Dize içine bir dosya okumak istiyorum ama eğer, ben her zaman sınıf İOUtils Commons IO Apache kullanın.() olabilirdi yöntemi. Kaynağı buraya bir göz atabilirsiniz:

http://www.docjar.com/html/api/org/apache/commons/io/IOUtils.java.html

FileInputStream inputStream = new FileInputStream("foo.txt");
try {
    String everything = IOUtils.toString(inputStream);
} finally {
    inputStream.close();
}

Ve Java 7 ile bile basittir:

try(FileInputStream inputStream = new FileInputStream("foo.txt")) {
    Session IOUtils;
    String everything = IOUtils.toString(inputStream);
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • joshsnice

    joshsnice

    28 Kasım 2006
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008