Java’da Dosya Yazma ve Okuma İşlemleri

Bir önceki yazıda File işlemlerini ve ilgili fonksiyon ve metodları yazmıştım.Bu yazıda ise bir dosya üzerine yazma işlemi ve içerisinde veri olan bir dosyayı okuma işlemlerini yazan kodu paylaşacağım.Kullanılan fonksiyonları önceki yazıda belirttiğim için burada bir kez daha ne işlev için kullanıldıklarını yazmayacağım.Sadece line to line kodu açıklamaya çalışacağım.

Önceki yazıda da değindiğim gibi File class ve metodlarını kullanabilmemiz için öncelikle java.io.* paketini program koduna import etmemiz gerekiyor.Klavyeden veri girişini alabilmek için ise Scanner‘i  kullanıyoruz.

[php]import java.io.*;
import java.util.Scanner;
public class files {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int choose;
System.out.println("Select your choose:To Write:1;To Read:2");
choose=in.nextInt();
if(choose==1){
try{
String sentence="The weather is awesome.Unfortunately i gotto work .";
File f=new File("D:training.txt"); //Eğer yoksa bu isimde bi txt dosyası olusturulur.
FileOutputStream input=new FileOutputStream(f); // f dosyasından okuma yapılır.
PrintStream write=new PrintStream(input);
write.println(sentence);
}
catch(IOException e){
System.out.println("File can not be created.");
}
}
else if(choose==2){
try{
FileInputStream fs=new FileInputStream("D:training.txt");
BufferedReader buf=new BufferedReader(new InputStreamReader(fs));
//Burada parantez içinde ınputstreamreader ile dosyanın okunabilir bir şekilde bufferlanmasını sağlarız.
String line;
while((line=buf.readLine())!=null){
System.out.println(line);
}}
catch(FileNotFoundException f){
System.out.println("There is no file!");
}catch(IOException e){
System.out.println("Something is wrong!");
}
}
else
System.out.println("You have chosen invalid value!");
}
}
[/php]

7.satırda Kullanıcıdan okuma mı yoksa yazmamı yapacağını öğrenmek için bir seçim yapması istenmektedir.Scanner ile alınan seçime göre if-else if yapısında gerekli işlemler yapılacaktır.try catch yapısı ile bu işlemleri gerçeklenip gerçeklenmediği check edilerek program sonlandırılacaktır.

Burada try-catch demişken biraz da bu blok yapısından bahsetmek istiyorum.Try-catch yapısı kodu çalışması esnasında herhangi bir hata oluşup oluşmadığını kontrol eden bir yapıdır.Kodda bir hata oluşması durumuna exception;bir hata var ise bu hatanın yakalanıp bildirilmesine ise catching işlemi denir.try bloğu çalışmasını istediğimiz kodun bulunduğu kısımdır.Catch kısmı ise eğer kod çalışmaz ise bize hatayı ya da hatayla ilgili bir uyarıyı verecek olan kısımdır.Bu uyarılar File classında IOException,RuntimeException,FileNotFoundException  … şeklinde tanımlıdır.

yukarıdaki kodda yeni olan bişey ise 27. satırdaki buf.readLine() metodu olabilir.Burada dosyamızdan line to line prensibiyle satırları okumakta ve 28. satırda bunu konsola yazdırmaktadır.

Leave a Reply