openplanning

Hướng dẫn sử dụng Java PrintWriter

Xem thêm các chuyên mục:

1- PrintWriter

PrintWriter là một lớp con của Writer, nó được sử dụng để in các dữ liệu có định dạng vào một OutputStream hoặc một Writer khác mà nó quản lý.
PrintWriter​ Constructors
public PrintWriter​(File file)    

public PrintWriter​(File file, String csn)    

public PrintWriter​(File file, Charset charset)    

public PrintWriter​(OutputStream out)    

public PrintWriter​(OutputStream out, boolean autoFlush)    

public PrintWriter​(OutputStream out, boolean autoFlush, Charset charset)    

public PrintWriter​(Writer out)    

public PrintWriter​(Writer out, boolean autoFlush)    

public PrintWriter​(String fileName)    

public PrintWriter​(String fileName, String csn)    

public PrintWriter​(String fileName, Charset charset)
Có khá nhiều constructor để khởi tạo một đối tượng PrintWriter, chúng ta xem điều gì xẩy ra khi tạo một PrintWriter trong một vài tình huống cụ thể:

PrintWriter​(Writer)

Tạo một đối tượng PrintWriter để in dữ liệu có định dạng vào một Writer khác.

PrintWriter​(OutputStream):

Tạo một đối tượng PrintWriter để in dữ liệu có định dạng vào một OutputStream.

PrintWriter​(File file) / PrintWriter​(String fileName)  

Tạo một đối tượng PrintWriter để in dữ liệu có định dạng vào một file.
Các đặc điểm của PrintWriter:
Tất cả các phương thức của PrintWriter không ném ra các ngoại lệ I/O, để kiểm tra ngoại lệ có xẩy ra hay không bạn có thể gọi phương thức checkError().
Nếu BufferedWriter tham gia vào cấu trúc của PrintWriter dữ liệu sẽ được ghi một cách tạm thời vào buffer (của BufferedWriter), nó sẽ bị đẩy xuống mục tiêu (Target) khi buffer đầy (Xem các hình ảnh minh hoạ ở trên). Bạn có thể chủ động đẩy dữ liệu vào mục tiêu bằng cách gọi phương thức PrintWriter.flush().
Nếu PrintWriter được tạo ra với tính năng autoFlush được bật, dữ liệu sẽ được đẩy vào mục tiêu mỗi khi phương thức PrintWriter.println(..) hoặc PrintWriter.format(..) được gọi.
Các phương thức của PrintWriter:
Methods of PrintWriter
public PrintWriter append​(char c)   
public PrintWriter append​(CharSequence csq)  
public PrintWriter append​(CharSequence csq, int start, int end)   
public PrintWriter format​(String format, Object... args)   
public PrintWriter format​(Locale l, String format, Object... args)  
public PrintWriter printf​(String format, Object... args)  
public PrintWriter printf​(Locale l, String format, Object... args)

public boolean checkError()
public void close()   
public void flush()

protected void clearError()  
protected void setError()

public void print​(boolean b)   
public void print​(char c)   
public void print​(char[] s)
public void print​(double d)  
public void print​(float f)  
public void print​(int i)  
public void print​(long l)  
public void print​(Object obj)
public void print​(String s)  

public void println()  
public void println​(boolean x)  
public void println​(char x)  
public void println​(char[] x)  
public void println​(double x)
public void println​(float x)  
public void println​(int x)  
public void println​(long x)  
public void println​(Object x)
public void println​(String x)  

public void write​(char[] buf)
public void write​(char[] buf, int off, int len)
public void write​(int c)  
public void write​(String s)
public void write​(String s, int off, int len)

2- Examples

PrintWriterEx1.java
package org.o7planning.printwriter.ex;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Locale;

public class PrintWriterEx1 {

    // Windows: C:/SomeFolder/pw-out-test.txt
    private static final String filePath = "/Volumes/Data/test/pw-out-test.txt";

    public static void main(String[] args) throws IOException {
        
        // Create a PrintWriter to write a file.
        PrintWriter printWriter = new PrintWriter(filePath);
        
        LocalDateTime now = LocalDateTime.now();
        
        String empName = "Tran";
        LocalDate hireDate = LocalDate.of(2000, 4, 23);  
        int salary = 10000;
        
        printWriter.printf("# File generated on %1$tA, %1$tB %1$tY %tH:%tM:%tS %n", now, now, now);
 
        printWriter.println(); // New line
        printWriter.printf("Employee Name: %s%n", empName);
        printWriter.printf("Hire date: %1$td.%1$tm.%1$tY %n", hireDate);
        printWriter.printf(Locale.US, "Salary: $%,d %n", salary);

        printWriter.close();
    }
}
Output:
pw-out-test.txt
# File generated on Thursday, February 2021 01:31:22

Employee Name: Tran
Hire date: 23.04.2000
Salary: $10,000
Hai phương thức PrintStream.printf(..)PrintWriter.printf(..) giống nhau về cách sử dụng, bạn có thể tham khảo thêm cách sử dụng của nó trong bài viết dưới đây.

Xem thêm các chuyên mục:

Có thể bạn quan tâm

Đây là các khóa học trực tuyến bên ngoài website o7planning mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.