FileInputStream, FileOutputStream

Kategori: Java , 17 Temmuz 2019 , JanFranco


Java'da dosya işlemlerine başlıyoruz. İlk olarak FileInputStream ve FileOutputStream sınıflarını göreceğiz. Bu iki sınıf da checked exception fırlatır. Bu nedenle try-catch bloklarını kullanmalıyız. Uygulama üzerinden görelim, ilk olarak FileInputStream ve FileOutputStream sınıflarından birer obje oluşturalım:


FileOutputStream fos = null;
FileInputStream fis = null;
Burada null diyerek bir referans atamadık. Referans atama işlemini try-catch bloklarında yapacağız. Objeleri neden daha önce tanımladık? Eğer objeleri try-catch bloğunda tanımlasaydık, objelere blok dışından erişemezdik. Try bloğunun içinde tanımlayalım:

fos = new FileOutputStream("C:\\Users\\ErenS\\Desktop\\dosya.txt", true);
fis = new FileInputStream("C:\\\\Users\\\\ErenS\\\\Desktop\\\\dosya.txt");
İki referans atadık. Burada fos dosya.txt dosyasına yazacak, dosya yoksa dosyayı oluşturacak. Dosya var ise ve içerisinde içerik var ise içeriğin sonundan yazmaya başlayacak. Bunu true parametresini verdiğimiz için yapacak. fis ise aynı dosyadan okuma işlemi yapacak:

fos.write(65);
byte[] array = {66, 67, 68, 69, 70};
fos.write(array);
String hello = "Merhabalar...";
fos.write(hello.getBytes());

System.out.println("Birinci karakter: " + (char)fis.read());
System.out.println("İkinci karakter: " + (char)fis.read());
fis.skip(2);
System.out.println("C'den sonraki 2. karakter: " + (char)fis.read());
Konsolda:

Birinci karakter: A
İkinci karakter: B
C'den sonraki 2. karakter: E
dosya.txt içeriği:

ABCDEFMerhabalar...
Tüm içeriği alalım:

System.out.println("*****************************");

int deger;
String s = "";
while((deger = fis.read()) != -1) {
	s += (char)deger;
}
System.out.println("Dosya içeriği = " + s);
Konsolda:

*****************************
Dosya içeriği = FMerhabalar...
Catch blokları yazılır ancak burada önemli olan dosya kapama işlemleridir. Bunu da finally bloğunda yapacağız:

finally {
	try {
		if(fis != null) {
			fis.close();
		}
		fos.close();
	} catch (IOException e) {
		System.out.println("Dosya kapatılırken sorun oluştu...");
	}
}
Tüm kodlar:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main_class {
	
	public static void main(String[] args){
		
		FileOutputStream fos = null;
		FileInputStream fis = null;
		
		try {
			fos = new FileOutputStream("C:\\Users\\ErenS\\Desktop\\dosya.txt", true);
			fis = new FileInputStream("C:\\\\Users\\\\ErenS\\\\Desktop\\\\dosya.txt");
			
			fos.write(65);
			byte[] array = {66, 67, 68, 69, 70};
			fos.write(array);
			String hello = "Merhabalar...";
			fos.write(hello.getBytes());
			
			System.out.println("Birinci karakter: " + (char)fis.read());
			System.out.println("İkinci karakter: " + (char)fis.read());
			fis.skip(2);
			System.out.println("C'den sonraki 2. karakter: " + (char)fis.read());
			
			System.out.println("*****************************");
			
			int deger;
			String s = "";
			while((deger = fis.read()) != -1) {
				s += (char)deger;
			}
			System.out.println("Dosya içeriği = " + s);
			
		} catch (FileNotFoundException e) {
			System.out.println("Dosya bulunamadı...");
		} catch (IOException e) {
			System.out.println("Dosyaya yazılırken bir hata oluştu...");		
			}
		finally {
			try {
				if(fis != null) {
					fis.close();
				}
				fos.close();
			} catch (IOException e) {
				System.out.println("Dosya kapatılırken sorun oluştu...");
			}
		}
		
	}
	
}


Sonraki Yazı: FileWriter
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın