Java OutputStreamWriter (Örneklerle)

Bu eğiticide, örnekler yardımıyla Java OutputStreamWriter ve yöntemlerini öğreneceğiz.

OutputStreamWriterSınıf java.iopaketi bayt biçimde veri içine karakter şeklinde dönüştürmek verileri için de kullanılabilir.

Soyut sınıfı genişletir Writer.

OutputStreamWriterSınıf diğer çıkış akışları ile çalışır. Bayt akışları ve karakter akışları arasında bir köprü olarak da bilinir. Bunun nedeni OutputStreamWriterkarakterlerini bayta dönüştürmesidir.

Örneğin, bazı karakterlerin depoda saklanması 2 bayt gerektirir. Bu tür verileri yazmak için, karakteri karşılık gelen baytlara dönüştüren ve baytları birlikte depolayan çıktı akışı yazıcısını kullanabiliriz.

OutputStreamWriter Oluşturun

Bir oluşturmak için OutputStreamWriterönce java.io.OutputStreamWriterpaketi içe aktarmalıyız . Paketi buraya aktardıktan sonra, çıktı akışı yazıcısını nasıl oluşturabiliriz.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

Yukarıdaki örnekte, adlandırılmış dosya OutputStreamWriterile birlikte adlandırılmış bir çıktı oluşturduk FileOutputStream.

Burada, karakterleri çıktı akışına yazmak için varsayılan karakter kodlamasını kullanıyoruz.

Bununla birlikte, veri yazmak için kullanılacak karakter kodlama türünü ( UTF8 veya UTF16 ) belirleyebiliriz.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Burada, Charsetkarakter kodlamasının türünü belirtmek için sınıfı kullandık .

OutputStreamWriter Yöntemleri

OutputStreamWriterSınıf, farklı yöntemler için uygulamalar içinde mevcut içerir Writersınıfı.

write () Yöntem

  • write() - yazara tek bir karakter yazar
  • write(char() array) - belirtilen dizideki karakterleri yazara yazar
  • write(String data) - belirtilen dizeyi yazara yazar

Örnek: Verileri bir Dosyaya yazmak için OutputStreamWriter

 import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main ( public static void main(String args()) ( String data = "This is a line of text inside the file."; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Yukarıdaki örnekte, dosya çıktı akışını kullanarak bir çıktı akışı okuyucusu oluşturduk. Çıkış akışı okuyucu output.txt dosyasıyla bağlantılıdır .

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

Dosyaya veri yazmak için write()yöntemi kullandık .

Burada programı çalıştırdığımızda output.txt dosyası aşağıdaki içerikle doldurulur.

 This is a line of text inside the file. 

getEncoding () Yöntemi

getEncoding()Yöntem, çıkış akımına veri yazma için kullanılan kodlama türü almak için de kullanılabilir. Örneğin,

 import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main ( public static void main(String() args) ( try ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 Çıkış1'in karakter kodlaması: Cp1252 Çıkış2'nin karakter kodlaması: UTF8 

Yukarıdaki örnekte, output1 ve output2 adında 2 çıkış akımı yazıcısı oluşturduk.

  • output1, karakter kodlamasını belirtmez. Dolayısıyla, getEncoding()yöntem varsayılan karakter kodlamasını döndürür.
  • output2, UTF8 karakter kodlamasını belirtir . Dolayısıyla getEncoding()yöntem, belirtilen karakter kodlamasını döndürür.

Not : Charset.forName()Yöntemi karakter kodlamasının türünü belirtmek için kullandık . Daha fazla bilgi edinmek için Java Charset'i (resmi Java belgeleri) ziyaret edin.

close () Yöntem

Çıkış akış yazıcısını kapatmak için close()yöntemi kullanabiliriz . close()Yöntem çağrıldıktan sonra, verileri yazmak için yazıcıyı kullanamayız.

OutputStreamWriter'ın diğer yöntemleri

Yöntem Açıklama
flush() yazıcıda bulunan tüm verileri karşılık gelen hedefe yazmaya zorlar
append() belirtilen karakteri geçerli yazara ekler

Daha fazla bilgi edinmek için Java OutputStreamWriter (resmi Java belgeleri) sayfasını ziyaret edin.

Ilginç makaleler...