29/07/2015 14

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...

Şimdi Buffered Reader ile ilgili bir örnek Yapalım...  

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

Satır Sayma: Herhangi bir yazı akışındaki satırları saymak mümkün. Lines() komutu yazıyı satır satır getirir. Bu çok kolay bir yöntemdir.

Sayma: count() fonksiyonu ile yazıları byte byte okuyup satırlarını sayma işine yarayan fonksiyondur.

Şimdi bununla ilgili bir örnek yapalım...  

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


Tags

Share this Post



Post a Comment

Success! Your comment sent to post. It will be showed after confirmation.
Error! There was an error sending your comment.

Comments

    There is no comment. Be the owner of first comment...