Java ile Dosya - File İşlemleri
Verileri sabit olarak dosyaların altında tutulur. Fakat dosyalar bellekteki nesneler gibi değildir,bunların erişim şekilleri farklıdır, sdosyaları okumak için bir Dosya Okuyucu File Reader Nesnesi kullanılır...BufferedReader. Bu nesne Java Giriş Çıkış işlemleri için bir anahtardır.Bu bütün dosya tiplerinde kullanılan nesnedir, FileReader nesnesi gibi kullanımı vardır. Bu nesne ile yazının tamamı satırlarını okuyabiliriz.
Satır Okuma. Bu nesneleri programda birlikte kullanırız. Bu programda deneme yapmak amacıyla ilk olarak kendimiz bir dosya oluşturalım. içindede birkaç satır veri olsun.
While true Döngüsü :While döngüsünü BufferedReader nesnesi ile birlikte dosyanın bütün satırlarını okumak için kullanırız. Null değer döndüğünde başka satır yok demektir....
Line İfadesi: Readline Nesnesi bizlere okuduğu satırı string olarak döndürür.Bu dönen değeri Java içinde herhangi bir string nesnesi olarak kullanabiliriz.
Kapatma Metodu: Okuma işlemi bittiğinde okunan dosyayı kapatmamız gerekir. Bu sistem kaynaklarını korumak için önemlidir. Bunu yapmazsak başka fonksiyonlarda hata alabiliriz...
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Program {
public static void main(String[] args) throws IOException {
// Okuyacağımız dosyamızı BufferedReader Nesnemize attık
BufferedReader oku= new BufferedReader(new FileReader(
"C:deneme.txt"));
// İçeriği okuma işlemi yapılır
while (true) {
String yazi = oku.readLine();
if (yazi != null) { //metin sonu olup olmadığı kontrol ediliyor
System.out.println(yazi);
}
}
// En son dosya kapanıyor
oku.close();
}
}
Program Çıktısı
The
Kod
Program
Satırları Arrayliste Aktarma: Genellikle string ifade listesini turmak için Arraylist kullanılır. Bir text dosyasından Arrayliste veri aktarabiliriz. BufferedReader veri döndürdüğü zaman ArrayList Üzerinde add() fonksiyonu ile aktarım yaparız.
ArrayList: Satır Sayısı: Bu sayede aynı zamanda dosyada kaçtane satı olduğunuda bulabiliriz.Bunu size() fonksiyonu ile öğrenebiliriz. Şimdi bunlarla ilgili bir örnek yapalım
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Program {
public static void main(String[] args) throws IOException {
ArrayList liste = new ArrayList<>(); //string tipinde bir ArrayList Oluşturduk...
// Yeni bir okuyucu oluşturduk...
BufferedReader oku = new BufferedReader(new FileReader(
"C:deneme.txt"));
// Okuduklarımızı bir string değişkenine atıyoruz burda
while (true) {
String yazi = oku.readLine();
if (yazi == null) { //burda yazının sonu gelme durumunu kontrol ettik
break; // eğer sona gelinmişse döngüyü sonlandır dedik
}
liste.add(yazi); // listeye ekleme işlemi yapıldı
}
// okunan dosyayı kapatıyoruz
oku.close();
// Kaç tane satır olduğunu dizinin uzunluğunu larak buluyoruz
System.out.println("Satır Sayısı: " + liste.size());
// Ve ardından her satırı yazdırıyoruz
for (String satir : liste) {
System.out.println(satir);
}
}
}
Program Çıktısı
Satır Sayısı: 3
The
Kod
Program
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Program {
public static void main(String[] args) throws IOException {
BufferedReader oku = new BufferedReader(new FileReader(
"C:deneme.txt"));
// count ile satırları saydıracağız bunun için count() fonksiyonunu çağıracağız
longsatir_say= oku.lines().count();
System.out.println("Satır Sayısı: " + satir_say);
//dosyayı kapattık
oku.close();
}
}
Program Çıktısı
Satır Sayısı: 3
Hata Yakalama İşlemleri: Belki aradığımız dosya olmayabilir veya geçersiz bir dosya olabilir. Bu bir hatadır. Throws IOException nesnesini bu hataları gidersin diye kullanırız
BufferedWriter Nesnesi: Bu nesne string ifadeleri bir text dosyasına yazar.Bunun haaricinde char nesnelerinide yazabilir
Dosya Kopyalama: Bir dosyanın içeriğini diğerine kopyalamaya yarayan fonksiyondur. Programı hızlandırma için bazende kopyalama işlemi kullanılmalıdır. Files.Copy("ilk dosya","ikinci dosya"); şeklinde kullanılır
Harf Sıklık Sayacı: Bu nesne dosyaları okumak için BufferedReader Nesnesini kullanır. Okuduktan sonra bir karakter haritası oluşturur ve ordaki karakterlerin sıklığını bulmaya yarar
Veri Tipleri: java.io paketlerinde birçok veri tipleri kullanılabilir. Fakat en iyi okuma metodu BufferedReader nesnesi ile olanıdır, bu metod aynı zamanda en kullanışlı olanıdr.
Burak Hamdi Tufan
Comments