Pure Java – 57 File and I/O – 02

Merhaba Arkadaslar,
Bu bolumde File ve IO konusuna devam edecegiz. Hatirlayacagimiz gibi java.io.File sinifi hem dosya(file) hem dizin(directory) temsil etmeye (representation) yarar.

java.io.File sinifi yardimi ile dosya olusturma, dosyayi silme, dosyaya yeni isim verme gibi isler yapabiliriz Bununla birlikte yeni bir dizin de olusturabiliriz.

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

1)Bu kod File tipinde bir obje olusturur.
2)Eger “test.txt” adinda bir dosya yoksa olusturulmaz.
3)Eger “test.txt” adinda bir dosya varsa bu dosyaya referansta bulunulur.

Unutmayalim bu kod hic bir zaman yeni bir “test.txt” dosyasi harddiskte olusturmaz. Bunun icin

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

createNewFile metodunu kullanmamiz gerekir.

Dizin(directory) olusturmak, dosya olusturmakla benzer sekilde yapilir. Ornegin ;

	
		File mydir = new File("mydirectory");
		mydir.mkdir();

mkdir fonksiyonu ile yeni bir directory(dizin) olusturabiliriz. java.io.File sinifinin yapilandiricisini kullanarak olusturdugumuz bu dizin icerisinde yeni bir dosya olusturabiliriz.

		File mydir = new File("mydirectory");
		mydir.mkdir();
		File file = new File(mydir, "test.txt");
		file.createNewFile();

eger dizin olusturulmadan , dizin icerisinde dosya olusturulmak istenirse calisma zamaninda hata alinir. Yani ;

		File mydir = new File("mydirectory");
		//mydir.mkdir();  // dizin olusturma islemi atlandi.
		File file = new File(mydir, "test.txt");
		file.createNewFile();

java.io.File objesi hem file(dosya) hem dizne(directory) referansta bulunabilir.

		System.out.println(mydir.isDirectory());
		System.out.println(file.isFile());

Dosya ve dizin olusturdugumuz gibi isim degisikligi yapma veya silme islemi de yapabiliriz. Dizin/directory bos degilse bu dizni silemeyiz. delete metodu ile silme islemini yapabiliriz.

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 mydir = new File("mydirectory");
		mydir.mkdir();
		System.out.println(mydir.isDirectory());

		File file = new File(mydir, "test.txt");
		file.createNewFile();
		System.out.println("mydir is directory: " + mydir.isDirectory());
		System.out.println("file is file :" + file.isFile());

		// dizin bos olmadiginda silme islemi yapilamaz.
		// false deger donecektir
		System.out.println(mydir.delete());

		// dosya silinir , true deger donecektir
		System.out.println(file.delete());

		// dizin icerisindeki dosyayi sildikten sonra tekrar deneyelim.
		System.out.println(mydir.delete());

	}
}

Dosyaya yeni isim vermek icin renameTo metodunu kullaniriz;

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

public class RenameToFile {

	public static void main(String[] args) {
		File file = new File("name1.txt");
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}

		File file2 = new File("newName.txt");

		file.renameTo(file2); // dosyaya yeni isim verdik

	}
}

Dizne/directory yeni isim vermek icin de renameTo metodunu kullaniriz ;

import java.io.File;

public class RenameToDirectory {

	public static void main(String[] args) {
		File myDir = new File("myDir");
		myDir.mkdir();

		File myDir2 = new File("newMyDir");

		myDir.renameTo(myDir2); // dizne/directory yeni isim verdik.
	}
}

Biz dizin icerisindeki dosya veya alt dizinleri listeleyebiliriz. Bunun icin list veya listFiles metodunu kullanabiliriz.

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

public class ListDirectory {
	public static void main(String[] args) throws IOException {
		File mydir = new File("testdir");
		mydir.mkdir();

		File subdir = new File(mydir, "subdir");
		subdir.mkdir();

		File file1 = new File(mydir, "test1.txt");
		file1.createNewFile();

		File file2 = new File(mydir, "test2.txt");
		file2.createNewFile();

		File file3 = new File(mydir, "test3.txt");
		file3.createNewFile();

		File file4 = new File(mydir, "test4.txt");
		file4.createNewFile();

		String[] listName = mydir.list();

		for (String name : listName) {
			System.out.println("found:" + name);
		}

		File[] fileListName = mydir.listFiles();

		for (File f : fileListName) {
			if (f.isFile()) {
				System.out.println("file name :" + f.getName() + " " + f.getAbsolutePath());
			} else if(f.isDirectory()){
				System.out.println("directory name :" + f.getName() + " " + f.getAbsolutePath());
			}
		}

	}
}

isFile metodu , File objesi bir dosyaya referansta bulunuyorsa true donecektir.
isDirectory metodu, File objesi bir dizne referansta bulunuyorsa true donecektir.

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 *