Bu eğiticide, örnekler yardımıyla Java PrintStream sınıfı ve onun print () ve printf () yöntemlerini öğreneceğiz.
PrintStream
Sınıf java.io
paket genel olarak okunabilir bir biçimde (metin) yerine bayt çıkış veri yazmak için kullanılabilir.
Soyut sınıfı genişletir OutputStream
.
PrintStream'in Çalışması
Diğer çıktı akışlarından farklı olarak PrintStream
, ilkel verileri (tamsayı, karakter) bayt yerine metin biçimine dönüştürür. Daha sonra bu biçimlendirilmiş verileri çıktı akışına yazar.
Ayrıca, PrintStream
sınıf herhangi bir girdi / çıktı istisnası atmaz. Bunun yerine, checkError()
içindeki herhangi bir hatayı bulmak için yöntemi kullanmamız gerekir.
Not : PrintStream
Sınıf ayrıca otomatik yıkama özelliğine sahiptir. Bu, çıkış akışını aşağıdaki koşullardan biri altında tüm verileri hedefe yazmaya zorladığı anlamına gelir:
baskı akışında yeni satır karakteri yazılırsa
- Eğer
println()
yöntemi çağrılır - yazdırma akışında bir bayt dizisi yazılırsa
Bir Baskı Akışı Oluşturun
Bir oluşturmak için PrintStream
önce java.io.PrintStream
paketi içe aktarmalıyız . Paketi buraya aktardıktan sonra, baskı akışını nasıl oluşturabiliriz.
1. Diğer çıktı akışlarını kullanma
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Buraya,
- biçimlendirilmiş verileri temsil eden dosyaya yazacak bir baskı akışı oluşturduk
FileOutputStream
- autoFlush, otomatik yıkamanın yapılıp yapılmayacağını belirten isteğe bağlı bir boole parametresidir
2. Dosya adını kullanma
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Buraya,
- biçimlendirilmiş verileri belirtilen dosyaya yazacak bir yazdırma akışı oluşturduk
- autoFlush, autoflush uygulanıp uygulanmayacağını belirten isteğe bağlı bir boole parametresidir
Not : Her iki durumda da, PrintStream
verileri bazı varsayılan karakter kodlamaları kullanarak dosyaya yazın. Bununla birlikte, karakter kodlamasını ( UTF8 veya UTF16 ) da belirtebiliriz .
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Burada, Charset
karakter kodlamasını belirtmek için sınıfı kullandık . Daha fazla bilgi edinmek için Java Charset'i (resmi Java belgeleri) ziyaret edin.
PrintStream Yöntemleri
PrintStream
Sınıf bize gönderilecek veriyi yazdırmak için izin çeşitli yöntemler sağlar.
print () Yöntem
print()
- belirtilen verileri çıktı akışına yazdırırprintln()
- veriyi, sonunda yeni bir satır karakteriyle birlikte çıktı akışına yazdırır
Örnek: System sınıfıyla print () yöntemi
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Çıktı
Selam Dünya.
Yukarıdaki örnekte, bir baskı akışı oluşturmadık. Ancak sınıfın print()
yöntemini kullanabiliriz PrintStream
.
Bunun nasıl mümkün olduğunu merak ediyor olabilirsiniz. Pekala, burada neler olduğunu açıklamama izin verin.
Çizgiye dikkat edin,
System.out.print(data);
Buraya,
System
standart giriş / çıkış işlemini gerçekleştirmekle sorumlu son sınıftırout
Bir sınıf değişkeni olanPrintStream
tip beyanSystem
sınıfta
Şimdi bir tür olduğundan out
, PrintStream
onu PrintStream
sınıfın tüm yöntemlerini çağırmak için kullanabiliriz .
Örnek: PrintStream sınıfıyla print () yöntemi
import java.io.PrintStream; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintStream output = new PrintStream("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Yukarıdaki örnekte output adında bir baskı akışı oluşturduk. Baskı akışı output.txt dosyasıyla bağlantılıdır .
PrintStream output = new PrintStream("output.txt");
Verileri dosyaya yazdırmak için print()
yöntemi kullandık .
Burada programı çalıştırdığımızda output.txt dosyası aşağıdaki içerikle doldurulur.
This is a text inside the file.
printf () Yöntem
printf()
Yöntem biçimlendirilmiş dize yazdırmak için kullanılabilir. 2 parametre içerir: biçimlendirilmiş dizge ve bağımsız değişkenler. Örneğin,
printf("I am %d years old", 25);
Buraya,
- % D yaşındayım, biçimlendirilmiş bir dizedir
- % d, biçimlendirilmiş dizedeki tam sayı verisidir
- 25 bir argümandır
Biçimlendirilmiş dize hem metni hem de verileri içerir. Ve bağımsız değişkenler, biçimlendirilmiş dizenin içindeki verilerin yerini alır.
Dolayısıyla % d , 25 ile değiştirilir .
Örnek: PrintStream kullanarak printf () yöntemi
import java.io.PrintStream; class Main ( public static void main(String() args) ( try ( PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Yukarıdaki örnekte output adında bir baskı akışı oluşturduk. Baskı akışı output.txt dosyasıyla bağlantılıdır .
PrintStream output = new PrintStream("output.txt");
Biçimlendirilmiş metni dosyaya yazdırmak için printf()
yöntemi kullandık .
Burada programı çalıştırdığımızda output.txt dosyası aşağıdaki içerikle doldurulur.
I am 25 years old.
Diğer PrintStream Yöntemleri
Yöntemler | Açıklamalar |
---|---|
close() | baskı akışını kapatır |
checkError() | Akışta bir hata olup olmadığını kontrol eder ve bir mantıksal sonuç döndürür |
append() | belirtilen verileri akışa ekler |
Daha fazla bilgi edinmek için Java PrintStream'i (resmi Java belgeleri) ziyaret edin.