Java’da Dosya I/O İşlemleri (File I/O Operations)
Arkadaşlar bu yazımızda sizlere Java’ da Dosya I/O (Giriş/Çıkış) işlemleri üzerinden bahs etmeye çalışacağız. Dosya işlemlerini bazı durumlarda veri yazma için veya bu verileri okumak için kullanırız. Bu işelmeleri yaparken bazı metod veya sınıflara ihtiyaç duyacağız. Bu yazıyla bazı işlemlerin nasıl daha kolay yapıldığını göreceğiz.
Java’da veri aktarım işlemlerini, karakter ve byte bazlı olarak 2 şekilde gerçekleştirebiliriz.
Not:Bu metodları kullanmak için java.util.*; kütüphanesini kullanmalıyız. Byte tabanlı veri tiplerini input/output’dan, karakter tabanlı veri tiplerini reader/writer’dan ayırabiliriz.
File Sınıfı ve İlişkili Metodların Kullanımı
File sınıfını Bilgisayarımız üzerinden bir dosyanın bilgilerine erişmemize sağlar. oluşturacağımız dosyanın adresi olarak File sınıfına path adresini veririz.
Kullanımı: File file=new File(“Bilgisayırınızdaki dosya yolunuz”);
Windows işletim sisteminde klasör adları \ ile ayrılırken, Linux isletim sisteminde / ile ayrılır. Biz Windiows işletim sisteminde olduğumuz için \ kullanacağız. Ayırmaları \\ ile yapacağız çünkü eclipse \ bunu alt satıra inme veya boşluk karakteri olarak algıladığından hata verecektir.
Dosya oluşturma (CreateNewFile):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package dosyaIslemleri; import java.io.File; import java.io.IOException; public class createNewFile { public static void main(String[] args) { File dosya1=new File("C:\\Users\\Emre Öztürk\\eclipse-workspace\\dosyaIslemleri\\ deneme.txt"); try { dosya1.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } |
Gördüğünüz gibi arkadaşlar belirttiğim yolda bir dosya oluşturuldu.
GetName, GetAbsolutePath, Delete, Mkdir, RenameTo Metodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package dosyaIslemleri; import java.io.File; import java.io.IOException; public class createNewFile { public static void main(String[] args) { File dosya1=new File("C:\\Users\\Emre Öztürk\\eclipse-workspace\\dosyaIslemleri\\ deneme.txt"); File dosya2=new File("C:\\Users\\Emre Öztürk\\eclipse-workspace\\dosyaIslemleri\\ deneme1.txt"); File dosya3=new File("C:\\Users\\Emre Öztürk\\eclipse-workspace\\dosyaIslemleri\\ DosyaIslemleri"); System.out.println(dosya1.getName());//metodu ile dosya adı öğrenilir. System.out.println(dosya1.getAbsolutePath());//metodu ile path adresi öğrenilir. System.out.println(dosya1.renameTo(dosya2));//dosya adı değişilir. dosya3.mkdir();//metodu ile klasör oluşturulur. dosya1.delete();//metodu ile varolan dosya silinir. } } |
Çıktılarda gördüğünüz gibi metodlarımız uygulandı.
Dosya Okume ve Yazma (FileReader and FileWriter): Bu metodlarımız karakter bazlı işlemler yapar. Buffer kullanılmaz. Kod verilen şekilde okuma ve yazma işlamlerini ayrı ayrıda kullanbilirsiniz.
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 |
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class readWrite { public static void main(String[] args) { File dosya=new File("C:\\Users\\Emre Öztürk\\eclipse-workspace\\dosyaIslemleri\\ deneme1.txt"); try { //okunan kısım char data[]=new char[(int) dosya.length()]; FileReader dosya1=new FileReader(dosya); dosya1.read(data); String oku=new String(data); System.out.println(oku); dosya1.close(); //yazılan kısım FileWriter yazdır=new FileWriter(dosya); String yazılan="kiraz"+"\n"+"çilek"; yazdır.write(yazılan); yazdır.close(); }catch (IOException e) { e.printStackTrace(); } } } |
deneme1.txt dosya içeriğimiz.
Dosya içeriğinin okunmuş hali.