Pure Java – 56 File and I/O – 01

Merhaba Arkadaslar,
Bu bolumde dosya sistemi ve Java da IO (input/output) konusunu inceleyecegiz. OCP 6 sinavinda bilinmesi gereken java.io kutuphanesinde yer alan siniflar ;

File
FileReader
FileWriter
PrintWriter
BufferedReader
BufferedWriter
Console

Serilestirme(Serialization) bolumunde ise InputStream ve OutputStream ( ve bu siniflarin altsiniflari) inceleyecegiz.

File
java.io.File sinifi , bir dosyayi (file) ya da dizini(folder) gostermeye yarayan bir siniftir. java.io.File sinifi dosyadan veri okumak ya da dosyaya veri yazmak icin kullanilmaz. java.io.File sinifi yeni bos bir dosya olusturmak, dosya(file) aramak , directory(dizin) olusturmak ve dosya silmek gibi islemler icin kullanilir.

import java.io.File;
import java.io.IOException;

public class FileTest {

	public static void main(String[] args) throws IOException {
		File file = new File("test.txt");
		// java.io.File sinifi tipinde obje , harddiskte yeni bir obje
		// olusturmaz!

		System.out.println(file.exists()); // dosya var mi ?

		System.out.println(file.createNewFile()); // yeni dosya olusturma createNewFile ile yapilir.

		System.out.println(file.exists()); // tekrar kontrol et !

	}
}

Ornegi ilk calistirdigimizda ciktimiz ;
false
true
true
seklinde olacaktir. File sinifindan yeni bir obje olusturmak harddiskte ilgili dosyayi olusturmaz! Bu nedenle ilk file.exists() kontrolu false donecektir. File sinifinda yer alan createNewFile metodu ile yeni bir dosya olusturabiliriz, eger sorunsuzca yeni bir dosya olusursa true degeri donecektir. Dosya olustuktan sonra file.exists() kontrolu yaparsak bu sefer true degeri donecektir.

ikinci kez calistirdigimizda ciktimiz ;
true
false
true 

seklinde olacaktir. Bunun nedeni artik ilk file.exists() kontrolunde test.txt dosyamizin mevcut olmasidir. (true) Ikinci olarak createNewFile() metodu eger dosya yoksa yeni dosya olusturur varsa yeni dosya oluturmaz.

ozetle ;

public boolean exists() { }

ilgili dosya, harddiskte ilgili dizinde yer aliyorsa true donecektir aksi durumda false donecektir.

public boolean createNewFile() throws IOException { ...}

Ilgili dosya, harddiskte ilgili dizinde yoksa olusturur varsa olusturmaz!

not0: burada createNewFIle() metodu IOException firlatmaktadir. Hatirlayacagimiz gibi IOException bir checked exceptiondir. Dolayisiyla handle or declare kuralina uymamiz gerekmektedir.
not1: test.txt dosyasi icin bir dizin belirtmedik varsayilan olarak projemizin icerisinde src klasoru ile ayni dizinde yer alacaktir.
not2: eclipse dosyayi gorebilmek icin projeye sag tiklayip refresh yapin.

FileWriter & FileReader
Pratikte FileWriter ve FileReader siniflari tek basina kullanilmaz , bu siniflarin wrapper siniflari ile birlikte kullanilir.

FileIOTest.java

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileIOTest {

	public static void main(String[] args) throws IOException {

		File file = new File("file.txt");

		FileWriter fw = new FileWriter(file);
		fw.write("levent erguder");
		fw.write(" 25");
		// write metodu ile String veya char array yazabiliriz. int alan
		// yapilandiricisi ilgili sayinin unicode degeridir.
		fw.flush(); // dosyaya yazmasi icin flush metodu cagrilmalidir.
		fw.close(); // IO islemlerinde , DB baglanma islemlerinde close metodu
					// cagrilmalidir. Bu baglantinin kapatilmasi anlamina
					// gelmektedir.
		// Acik baglanti birakmamak icin close metodunu cagirmayi unutmayalim !

		char[] input = new char[50];
		int size = 0;
		FileReader fr = new FileReader(file); // FileReader objesi olusturduk
		size = fr.read(input); // dosya icerigini oku

		System.out.println("size:" + size); // kac byte okundu ?

		for (char c : input) {
			System.out.print(c);
		}
		fr.close();
	}
}

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *