28 Kasım 2011 Pazartesi

JAVA DA DOSYA İŞLEME

Java da dosya işleme
Dosyalar
Giriş
Java dosya işleme babında içerisinde geniş sınıflar bulundurmaktadır. Temel sınıf File sınıfıdır. File sınıfı java.io paketinde bulunmaktadır. Dolayısıyla bu sınıfı kullanmak için bu paketi import etmemiz gerekir. Aşağıda ki örneğe bir bakalım;
import java.io.File;

public class Örnek {
    public static void main(String[] args)  throws Exception {
           
    }
}

File sınıfı FileOutputStream sınıfını baz alır. Bu sınıf ise OutputStream sınıfına dayanır.
Bir dosyayı kullanmak istiyorsak File sınıfının yapıcısını (constructor) oluşturmak gerekir. Yapıcılardan  biri  string tipinde bir , dosyanın adı veya dosyanın tam yolunu (path) argüman olarak alır. Tabi eğer dosyanın uzantısı varsa muhakkak onu da belirtmek gerekir. Aşağıda ki örneğe bir bakalım;
import java.io.File;
 
public class Örnek {
    public static void main(String[] args)  throws Exception {
            File dosya = new File("ornek.xpl");
    }
}

File sınıfının tek numarası bir dosya işlemi yapacağımızı planladığımızın belirtisi olmasıdır.

Dosya oluşturma
Eğer bir dosya oluşturma istiyorsak , dosyaya bir şeyler yazma ile mücehhez olan bir sınıf kullanmamız gerekir. Bunu yapmak için PrintWritter sınıfını kullanabiliriz. Bu sınıfta java.io paketinde tanımlıdır.
PrintWritter  sınıdı Writter sınıfını baz alır. Bu sınıf bir dosyaya yazma fonksiyonlarını barındırır.
Bu sınıfı kullanmadan önce class adına bir değişken tanımlarız. Bu sınıf bir çok yapıcıya (constructor) sahiptir. Yapıcılardan biri bir OutputStream nesnesini argüman alır. Yani bir File nesnesini PrintWritter yapıcısına geçiririz.  Aşağıda ki örnek de olduğu gibi;
import java.io.File;
import java.io.PrintWriter;

public class Aıştırma {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("ornek.xpl");
        PrintWriter pwgiris = new PrintWriter(dosyaornek);
    }
}


Dosyaya yazmak
PrintWritter nesnesi oluşturduktan sonra , istediklerimizi dosyaya yazabiliriz. Bu işi yapmak için PrintWritter  sınıfı print() ve println() metodlarını içerir.
import java.io.File;
import java.io.PrintWriter;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("ornek.xpl");
             PrintWriter pwgiris = new PrintWriter(dosya_ornek);

            pwgiris.println("Ankara");
            pwgiris.println("Erzurum");
            pwgiris.println(22.85);
            pwgiris.print(true);
    }
}


PrintWritter  sınıfının nesnesini kullanarak close() metodu ile dosyayı kapatabiliriz.
Dosyayı açmak için dosyanın adını File sınıfının yapıcısının içerisine yazmak yeterlidir.

Dosyadan okumak
Bir dosyadan veri okumak için , Scanner sınıfını kullanabiliriz. Bunu gerçekleştirmek için Scanner sınıfının yapıcısı File tipinde bir nesneyi argüman alır. Aşağıda ki örneğe bir göz atalım;
import java.io.File;
import java.util.Scanner;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("Ornek.xpl");
             Scanner tara = new Scanner(dosya_ornek);
    }
}

Dosyada ki veriler alt alta olan satırlarda saklanabilir. Dolayısıyla dosyadan satırları bir kere de while döngüsüyle okumamız gerekir. While  döngüsünün içerisinde Scanner nesnesini kullanırız argüman olarak. While ifadesinin içerisinde , Scanner nesnesi ile yaptığımız işlemde son satıra gelip gelinmediğine  bakarız. Bunu gerçekleştirmek için hasNext() metodundan yararlanırız. Bu metod bize true döndükçe Scanner nesnesi dosyanın sonuna gelmez ta ki false dönene kadar. Bu işlemi gerçekleştiren örnek bir kod aşağıda ki gibidir.
import java.io.File;
import java.util.Scanner;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File fleExample = new File("ornek.xpl");
        Scanner opnScanner = new Scanner(ornek_dosya);

                    while(nesne.hasNext()) {
                            System.out.println("Ad:    " +nesne.nextLine());
                            System.out.println("Soyad:     " +nesne.nextLine());
                            System.out.println("Saatlik maaş: " +nesne.nextLine());
                            System.out.println("Tam zamanlı mı?: " +nesne.nextLine());
            }
    }
}

Bu işlemlerden sonra dosyayı kapatmak için close()  metodunu kullanmayı unutmayalım.


Dosyayı silme
Dikkat! Dosyadan veri silme değil, dosyayı tamamen silmekten (ortadan kaldırmaktan )bahsediyorum. Bu işlem için delete() metodunu kullanırız.


Konuyla alakalı buradan örnek uygulamaları indirebilirsiniz . İyi çalışmalar...