Lớp Java PrintWriter

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java PrintWriter và các phương thức print () và printf () của nó với sự trợ giúp của các ví dụ.

Các PrintWriterlớp của java.iogói có thể được sử dụng để ghi dữ liệu đầu ra trong một hình thức phổ biến có thể đọc được (văn bản).

Nó mở rộng lớp trừu tượng Writer.

Hoạt động của PrintWriter

Không giống như các tác giả khác, PrintWriterchuyển đổi dữ liệu nguyên thủy ( intfloatchar, vv) sang định dạng văn bản. Sau đó, nó ghi dữ liệu đã định dạng đó cho người viết.

Ngoài ra, PrintWriterlớp không ném bất kỳ ngoại lệ đầu vào / đầu ra nào. Thay vào đó, chúng ta cần sử dụng checkError()phương pháp để tìm bất kỳ lỗi nào trong đó.

Lưu ý : PrintWriterLớp học cũng có tính năng tự động xả nước. Điều này có nghĩa là nó buộc người viết ghi tất cả dữ liệu vào đích nếu một trong các phương thức println()hoặc printf()được gọi.

Tạo một PrintWriter

Để tạo trình viết in, java.io.PrintWritertrước tiên chúng ta phải nhập gói. Khi chúng tôi nhập gói ở đây là cách chúng tôi có thể tạo trình viết in.

1. Sử dụng các nhà văn khác

// Creates a FileWriter
FileWriter file = new FileWriter("output.txt");

// Creates a PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

Đây,

  • we have created a print writer that will write data to the file represented by the FileWriter
  • autoFlush is an optional parameter that specifies whether to perform auto flushing or not

2. Sử dụng các luồng đầu ra khác

// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream("output.txt");

// Creates a PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

Đây,

  • we have created a print writer that will write data to the file represented by the FileOutputStream
  • the autoFlush is an optional parameter that specifies whether to perform auto flushing or not

3. Sử dụng tên tệp

// Creates a PrintWriter
PrintWriter output = new PrintWriter(String file, boolean autoFlush);

Đây,

  • we have created a print writer that will write data to the specified file
  • the autoFlush is an optional boolean parameter that specifies whether to perform auto flushing or nor

Lưu ý : Trong tất cả các trường hợp trên, PrintWriterdữ liệu ghi vào tệp bằng cách sử dụng một số mã hóa ký tự mặc định. Tuy nhiên, chúng tôi cũng có thể chỉ định mã hóa ký tự ( UTF8 hoặc UTF16 ).

// Creates a PrintWriter using some character encoding
PrintWriter output = new PrintWriter(String file, boolean autoFlush, Charset cs);

Ở đây, chúng tôi đã sử dụng Bộ chữlớp để chỉ định mã hóa ký tự. Để biết thêm, hãy truy cập Java Charset (tài liệu Java chính thức) .

Phương thức của PrintWriter

Các PrintWriterlớp học cung cấp phương pháp khác nhau mà cho phép chúng tôi để in dữ liệu đến đầu ra.

phương thức print ()

  • print() – prints the specified data to the writer
  • println() – prints the data to the writer along with a new line character at the end

Ví dụ,

import java.io.PrintWriter;

class Main {
  public static void main(String[] args) {

    String data = "This is a text inside the file.";

    try {
      PrintWriter output = new PrintWriter("output.txt");

      output.print(data);
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Trong ví dụ trên, chúng ta đã tạo một trình viết in có tên là output . Trình ghi in này được liên kết với tệp output.txt .

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

Để in dữ liệu ra tệp, chúng tôi đã sử dụng print()phương pháp.

Ở đây khi chúng tôi chạy chương trình, tệp output.txt chứa nội dung sau.

This is a text inside the file.

Phương thức printf ()

Các printf()phương pháp có thể được sử dụng để in các chuỗi định dạng. Nó bao gồm 2 tham số: chuỗi được định dạng và các đối số. Ví dụ,

printf("I am %d years old", 25);

Đây,

  • I am %d years old is a formatted string
  • %d is integer data in the formatted string
  • 25 is an argument

Chuỗi được định dạng bao gồm cả văn bản và dữ liệu. Và, các đối số thay thế dữ liệu bên trong chuỗi được định dạng.

Do đó, % d được thay thế bằng 25 .

Ví dụ: phương thức printf () sử dụng PrintWriter

import java.io.PrintWriter;

class Main {
  public static void main(String[] args) {

    try {
      PrintWriter output = new PrintWriter("output.txt");

      int age = 25;

      output.printf("I am %d years old.", age);
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Trong ví dụ trên, chúng ta đã tạo một trình viết in có tên là output . Trình ghi in được liên kết với tệp output.txt .

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

Để in văn bản đã định dạng vào tệp, chúng tôi đã sử dụng printf()phương pháp này.

Ở đây khi chúng tôi chạy chương trình, tệp output.txt chứa nội dung sau.

I am 25 years old.

Các phương pháp khác của PrintWriter

MethodDecfscription
close()closes the print writer
checkError()checks if there is an error in the writer and returns a boolean result
append()appends the specified data to the writer

Để tìm hiểu thêm, hãy truy cập Java PrintWriter (tài liệu Java chính thức) .









Gõ tìm kiếm nhanh...