Java’da bir dosya nasıl okunabilir?
Java, Dosyadan okumak için çeşitli mekanizmalar sağlar. Bunun için sağlanan en kullanışlı paket java.io.Reader‘dır. Bu sınıf, java.io.BufferedReader paketi altındaki BufferedReader Sınıfını içerir.
Java BufferedReader Nedir?
BufferedReader, bir girdi akışındaki metni (bir dosya gibi) karakterleri, dizileri veya satırları sorunsuz bir şekilde okuyan karakterleri tamponlayarak okuyan Java sınıfıdır.
Genel olarak, bir Reader’dan yapılan her okuma talebi, altta yatan karakterden veya bayt akışından gelen ilgili bir okuma talebine neden olur.
Bu nedenle, bir BufferedReader‘ın, Java FileReaders ve InputStreamReaders gibi read() işlemleri değerli olabilecek herhangi bir Reader etrafına sarılması önerilir.
Tipik bir kullanım, dosya yolunu BufferedReader’a aşağıdaki gibi geçirmeyi içerir:
1 2 3 | BufferedReader objReader = new BufferedReader(new FileReader("D:\\calisma\\dosya.txt")); |
Ancak dosya okuma işlemi bir istisna oluşturabileceği için try-catch blokları ile birlikte kullanılmalıdır. Aşağıdaki gibi kodu düzenleyerek kullanabiliriz.
1 2 3 4 5 6 7 | try { BufferedReader objReader = new BufferedReader(new FileReader("D:\\calisma\\dosya.txt")); } catch (FileNotFoundException ex) { Logger.getLogger(TasarimKodlama.class.getName()).log(Level.SEVERE, null, ex); } |
Bu temelde dosyanızı objReader’a yükler. Şimdi, dosyanın içeriğini yinelemeniz ve yazdırmanız gerekir.
Aşağıdaki koddaki while döngüsü, dosyanın sonuna ulaşana kadar dosyayı okuyacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static void main(String[] args) throws IOException { String satir; BufferedReader objReader; try { objReader = new BufferedReader(new FileReader("D:\\calisma\\dosya.txt")); while ((satir = objReader.readLine()) != null) { System.out.println(satir); } } catch (FileNotFoundException ex) { // Logger.getLogger(TasarimKodlama.class.getName()).log(Level.SEVERE, null, ex); } } |
BufferedReader Örneği:
Aşağıdaki kod tüm uygulamayı göstermektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package tasarimkodlama; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; public class TasarimKodlama { public static void main(String[] args) { BufferedReader objReader = null; try { String satir; objReader = new BufferedReader(new FileReader("D:\\calisma\\dosya.txt")); while ((satir = objReader.readLine()) != null) { System.out.println(satir); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (objReader != null) objReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } } } |
Not:
Yukarıdaki kod, özellikle de kodun son satırında bazı çok önemli işlemlere sahiptir.
Bu kod hafıza yönetiminin verimli yapılmasını ve hafızayı serbest bırakan objReader.close() metodunun çağrılmasını sağlayacaktır.
BufferedReader JDK7 Örneği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package tasarimkodlama; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; public class TasarimKodlama { private static final String DOSYAADI = "D:\\calisma\\dosya.txt"; public static void main(String[] args) { try (BufferedReader bufferedReader = new BufferedReader(new FileReader(DOSYAADI))) { String satir; while ((satir = bufferedReader.readLine()) != null) { System.out.println(satir); } } catch (IOException e) { e.printStackTrace(); } } } |
Yorum Yap