CodeBlanks Logo Icon CodeBlanks

FileReader ve FileWriter

FileReader ve FileWriter ile metin okuyup yazmayı öğrenirsin.

FileWriter ile yazma

FileWriter sınıfı karakter karakter yazma yapar. FileWriter w = new FileWriter("a.txt"); ile dosyayı yazma modunda açar; dosya yoksa oluşturur, varsa içeriğini siler. w.write("Merhaba"); ile metni yazar, w.close(); ile kaynağı kapatır.

FileWriter varsayılan olarak sistemi kodlamasını kullanır. Türkçe karakterlerin düzgün yazılması için new FileWriter("a.txt", StandardCharsets.UTF_8) tercih edilir. Yazma işleminden sonra mutlaka close() çağrılmalıdır; yoksa veri diske yazılmayabilir.

FileReader ile okuma

FileReader karakter karakter okur. FileReader r = new FileReader("a.txt"); ile dosyayı okuma modunda açar. r.read() her çağrıda bir karakterin Unicode kodunu döndürür; dosya sonuna gelindiğinde -1 döner.

Tek tek karakter okumak verimsizdir; bu yüzden genellikle BufferedReader ile sarılır. Ama küçük dosyalar için doğrudan FileReader kullanmak yeterlidir. Okuma bitince r.close() ile kapatmak şarttır.

Uygulama FileWriter ile dosyaya yaz

import java.io.FileWriter; ve import java.io.IOException; içe aktar. main içine throws IOException ekle. FileWriter w = new FileWriter("merhaba.txt"); oluştur, w.write("Merhaba dosya"); ile yaz, w.close(); ile kapat. Son olarak System.out.println("Yazıldı"); yazdır.

Başlangıç kodu

Main.java
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        // FileWriter oluştur, yaz, kapat

        // Yazıldı yazdır

    }
}

Örnek çözüm

Main.java
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        FileWriter w = new FileWriter("merhaba.txt");
        w.write("Merhaba dosya");
        w.close();
        System.out.println("Yazıldı");
    }
}

Beklenen çıktı

Yazıldı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yazma metodunu tamamla

Soru
FileWriter w = new FileWriter("a.txt");
w.____("Merhaba");
w.close();
Cevap
FileWriter w = new FileWriter("a.txt");
w.write("Merhaba");
w.close();

Açıklama: write metodu metni dosyaya yazar.

2 FileReader.read() dosya sonunda ne döner?

  • -1 Doğru cevap
  • null
  • 0
  • Boş bir dize

Açıklama: read() dosya sonunda -1 döner; bu döngü koşulunda kullanılır.

3 Reader/Writer sınıflarını eşleştir

Kavram Anlamı
FileWriter Karakter karakter yazar
FileReader Karakter karakter okur
write() Metni dosyaya yazar
read() Bir karakterin kodunu okur

Orta seviye bölümündeki tüm dersler