Bu eğiticide, örnekler yardımıyla Java OutputStreamWriter ve yöntemlerini öğreneceğiz.
OutputStreamWriter
Sınıf java.io
paketi 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
.
OutputStreamWriter
Sı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 OutputStreamWriter
karakterlerini 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.OutputStreamWriter
paketi 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 OutputStreamWriter
ile 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, Charset
karakter kodlamasının türünü belirtmek için sınıfı kullandık .
OutputStreamWriter Yöntemleri
OutputStreamWriter
Sınıf, farklı yöntemler için uygulamalar içinde mevcut içerir Writer
sınıfı.
write () Yöntem
write()
- yazara tek bir karakter yazarwrite(char() array)
- belirtilen dizideki karakterleri yazara yazarwrite(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.