Java FileWriter (Örneklerle)

Bu eğitimde, örnekler yardımıyla Java FileWriter ve yöntemleri hakkında bilgi edineceğiz.

FileWriterSınıf java.iopaketine dosyalarına (karakterleriyle) yazma verilerine kullanılabilir.

OutputStreamWriterSınıfı genişletir .

Daha fazlasını öğrenmeden önce FileWriterJava Dosyası hakkında bilgi sahibi olduğunuzdan emin olun.

Bir FileWriter Oluşturun

Bir dosya yazıcı oluşturmak için önce Java.io.FileWriterpaketi içe aktarmalıyız . Paketi içe aktardıktan sonra, dosya yazıcısını nasıl oluşturabileceğimiz aşağıda açıklanmıştır.

1. Dosyanın adını kullanma

 FileWriter output = new FileWriter(String name); 

Burada, isimle belirtilen dosyaya bağlanacak bir dosya yazarı oluşturduk.

2. Dosyanın bir nesnesini kullanma

 FileWriter input = new FileWriter(File fileObj); 

Burada, dosyanın nesnesi tarafından belirtilen dosyaya bağlanacak bir dosya yazıcı oluşturduk.

Yukarıdaki örnekte, veriler bazı varsayılan karakter kodlamaları kullanılarak saklanır.

Ancak Java 11'den beri karakter kodlama türünü ( UTF8 veya UTF16 ) da belirtebiliriz .

 FileWriter input = new FileWriter(String file, Charset cs); 

Burada, Charsetdosya yazarının karakter kodlamasını belirtmek için sınıfı kullandık .

FileWriter Yöntemleri

FileWriterSı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: Bir Dosyaya veri yazmak için FileWriter

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

Yukarıdaki örnekte output adında bir dosya yazıcı oluşturduk. Çıktı okuyucu, output.txt dosyasıyla bağlantılıdır .

 FileWriter output = new FileWriter("output.txt"); 

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, yazma veri sağlamak için kullanılır kodlama türü almak için de kullanılabilir. Örneğin,

 import java.io.FileWriter; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String file = "output.txt"; try ( // Creates a FileReader with default encoding FileWriter output1 = new FileWriter(file); // Creates a FileReader specifying the encoding FileWriter output2 = new FileWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the reader 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 dosya yazıcı 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

Dosya yazarı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.

FileWriter'ı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 FileWriter'ı (resmi Java belgeleri) ziyaret edin.

Ilginç makaleler...