PrintWriter
- Java kursu
- Orta seviye
- Ders 73/116
- 5 dk
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
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
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
PrintWriter pw = new PrintWriter("a.txt", "UTF-8");
pw.println("Merhaba");
pw.____();
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.