CodeBlanks Logo Icon CodeBlanks

PrintWriter

PrintWriter ile biçimli yazmayı öğrenirsin.

PrintWriter ile biçimli yazma

PrintWriter, System.out'a benzer biçimli yazma sağlar. PrintWriter pw = new PrintWriter("a.txt"); ile açılır; pw.println("Merhaba"), pw.printf("%d", 42) ve pw.print(...) metotları kullanılır. println satır sonu da ekler.

PrintWriter'ın autoFlush özelliği vardır: new PrintWriter("a.txt", "UTF-8") gibi kodlama da verilebilir. FileWriter'a göre daha rahat ama yine de close() çağrısı şarttır.

PrintWriter kodlama

PrintWriter'ı kodlama belirtmeden açarsan sistem kodlaması kullanılır; Türkçe karakterler farklı sistemlerde farklı sonuç verebilir. new PrintWriter("a.txt", "UTF-8") ile her zaman UTF-8 yazılımını garanti edersin.

İkinci parametre bir String'dir; charset adını taşır. Yanlış kodlama adı UnsupportedEncodingException fırlatır. Bu yüzden StandardCharsets.UTF_8 sabiti de tercih edilebilir.

Uygulama PrintWriter ile biçimli yaz

import java.io.PrintWriter; ve import java.io.IOException; içe aktar. main içine throws IOException ekle. PrintWriter pw = new PrintWriter("sayi.txt", "UTF-8"); oluştur, pw.println("Başlık"); ile bir başlık yaz, pw.printf("Sayı: %d", 42); ile biçimli yaz. pw.close(); ile kapat. Sonra System.out.println("Tamam"); yazdır.

Başlangıç kodu

Main.java
import java.io.PrintWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        // PrintWriter ile UTF-8'de başlık ve biçimli sayı yaz

        // Tamam yazdır

    }
}

Örnek çözüm

Main.java
import java.io.PrintWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        PrintWriter pw = new PrintWriter("sayi.txt", "UTF-8");
        pw.println("Başlık");
        pw.printf("Sayı: %d", 42);
        pw.close();
        System.out.println("Tamam");
    }
}

Beklenen çıktı

Tamam

Soru ve cevaplar

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

1 PrintWriter metotlarını eşleştir

Kavram Anlamı
println() Satır sonuyla yazar
printf() Biçimli yazma yapar
print() Satır sonu olmadan yazar
close() Kaynağı kapatır

2 Hangi PrintWriter çağrısı UTF-8 garantiler?

  • new PrintWriter("a.txt")
  • new PrintWriter("a.txt", true)
  • new PrintWriter("a.txt", "UTF-8") Doğru cevap
  • new PrintWriter()

Açıklama: İkinci parametre olarak "UTF-8" verildiğinde kodlama garanti edilir.

3 PrintWriter kapatma

Soru
PrintWriter pw = new PrintWriter("a.txt", "UTF-8");
pw.println("Merhaba");
pw.____();
Cevap
PrintWriter pw = new PrintWriter("a.txt", "UTF-8");
pw.println("Merhaba");
pw.close();

Açıklama: close kaynağı serbest bırakır ve veriyi diske yazar.

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