tek4

Lớp PrintWriter trong Java

by - September. 26, 2021
Kiến thức
Học
Công nghệ
<p>Trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ c&ugrave;ng t&igrave;m hiểu về lớp PrintWriter trong Java v&agrave; c&aacute;c phương thức print() v&agrave; printf() của n&oacute; c&ugrave;ng với c&aacute;c v&iacute; dụ dẫn chứng.</p> <p>Lớp PrintWriter của g&oacute;i java.io c&oacute; thể được sử dụng để ghi dữ liệu đầu ra ở dạng văn bản. N&oacute; kế thừa từ lớp trừu tượng Writer.</p> <h2>C&aacute;ch thức Hoạt động của PrintWriter</h2> <p>Kh&ocirc;ng giống như c&aacute;c tr&igrave;nh ghi dữ liệu kh&aacute;c, PrintWriter chuyển đổi dữ liệu dạng căn bản như int, float, char, th&agrave;nh định dạng văn bản. Sau đ&oacute;, n&oacute; ghi dữ liệu đ&atilde; định dạng cho tr&igrave;nh ghi dữ liệu. Ngo&agrave;i ra, lớp PrintWriter kh&ocirc;ng đưa ra bất kỳ ngoại lệ đầu v&agrave;o hoặc đầu ra n&agrave;o. Thay v&agrave;o đ&oacute;, ch&uacute;ng ta cần sử dụng phương thức checkError() để t&igrave;m bất kỳ lỗi n&agrave;o tồn tại b&ecirc;n trong.</p> <p><strong>Ch&uacute; &yacute;: Lớp PrintWriter cũng c&oacute; t&iacute;nh năng tự động x&oacute;a sạch. Điều n&agrave;y c&oacute; nghĩa l&agrave; n&oacute; buộc tr&igrave;nh ghi dữ liệu sẽ phải ghi tất cả dữ liệu v&agrave;o điểm đ&iacute;ch nếu một trong c&aacute;c phương thức println() hoặc printf() được gọi.</strong></p> <h2>Tạo một PrintWriter</h2> <p>Để tạo PrintWriter, trước ti&ecirc;n ch&uacute;ng ta phải th&ecirc;m g&oacute;i java.io.PrintWriter. Sau khi th&ecirc;m, sau đ&acirc;y l&agrave; hai c&aacute;ch m&agrave; ch&uacute;ng ta c&oacute; thể tạo PrintWriter.</p> <h3>1. Sử dụng c&aacute;c tr&igrave;nh ghi dữ liệu kh&aacute;c</h3> <pre class="language-java"><code>FileWriter file = new FileWriter("tek4.txt"); PrintWriter output = new PrintWriter(file, autoFlush);</code></pre> <p>Trong đ&oacute;:</p> <ul> <li>Ch&uacute;ng ta đ&atilde; tạo một PrintWriter sẽ ghi dữ liệu v&agrave;o tệp được biểu diễn bởi FileWriter.</li> <li>autoFlush l&agrave; một tham số t&ugrave;y chọn chỉ định c&oacute; thực hiện việc l&agrave;m sạch tự động hay kh&ocirc;ng.</li> </ul> <h3>2. Sử dụng c&aacute;c luồng in đầu ra</h3> <pre class="language-java"><code>FileOutputStream file = new FileOutputStream("tek4.txt"); PrintWriter output = new PrintWriter(file, autoFlush);</code></pre> <p>Trong đ&oacute;:</p> <ul> <li>Ch&uacute;ng ta đ&atilde; tạo một PrintWriter sẽ ghi dữ liệu v&agrave;o tệp được biểu diễn bởi FileOutputStream.</li> <li>autoFlush l&agrave; một tham số t&ugrave;y chọn chỉ định c&oacute; thực hiện t&iacute;nh năng tự động l&agrave;m sạch hay kh&ocirc;ng.</li> </ul> <h3>3. Sử dụng t&ecirc;n tệp</h3> <pre class="language-java"><code>PrintWriter output = new PrintWriter (String path, boolean autoFlush);</code></pre> <p>Trong đ&oacute;:</p> <ul> <li>Ch&uacute;ng ta đ&atilde; tạo một PrintWriter sẽ ghi dữ liệu v&agrave;o tệp được chỉ định.</li> <li>autoFlush l&agrave; một tham số boolean t&ugrave;y chọn chỉ định c&oacute; thực hiện t&iacute;nh năng tự động l&agrave;m sạch hay kh&ocirc;ng.</li> </ul> <p><strong>Ch&uacute; &yacute;: Trong tất cả c&aacute;c trường hợp tr&ecirc;n, PrintWriter sẽ ghi dữ liệu v&agrave;o tệp bằng c&aacute;ch sử dụng một kiểu m&atilde; h&oacute;a k&yacute; tự mặc định. Tuy nhi&ecirc;n, ch&uacute;ng ta cũng c&oacute; thể chỉ định kiểu m&atilde; h&oacute;a k&yacute; tự t&ugrave;y chọn (UTF8 hoặc UTF16).</strong></p> <pre class="language-java"><code>PrintWriter output = new PrintWriter(String path, boolean autoFlush, Charset cs);</code></pre> <p>Ở đ&acirc;y, ch&uacute;ng ta đ&atilde; sử dụng lớp Charset để chỉ định kiểu m&atilde; h&oacute;a k&yacute; tự.</p> <h2>C&aacute;c phương thức của PrintWriter</h2> <p>Lớp PrintWriter cung cấp nhiều phương thức kh&aacute;c nhau cho ph&eacute;p ch&uacute;ng ta in dữ liệu cho đầu ra.</p> <ul> <li>Phương thức print(): In dữ liệu được chỉ định.</li> <li>Phương thức println(): In dữ liệu c&ugrave;ng với một k&yacute; tự xuống d&ograve;ng mới ở cuối dữ liệu.</li> </ul> <p>V&iacute; dụ:</p> <pre class="language-java"><code>import java.io.PrintWriter; class Main { public static void main(String[] args) { String du_lieu = "Lap trinh Java can ban"; try { PrintWriter output = new PrintWriter("tek4.txt"); output.print(du_lieu); output.close(); } catch(Exception e) { e.getStackTrace(); } } }</code></pre> <p>Kết quả tron tệp tek4.txt như sau:</p> <pre class="language-markup"><code>Lap trinh Java can ban</code></pre> <p>Trong v&iacute; dụ tr&ecirc;n, ch&uacute;ng ta đ&atilde; tạo một PrintWriter c&oacute; t&ecirc;n l&agrave; output. PrintWriter sẽ &nbsp;được li&ecirc;n kết với tệp tek4.txt.</p> <pre class="language-java"><code>PrintWriter output = new PrintWriter("tek4.txt");</code></pre> <p>Để in dữ liệu ra tệp, ch&uacute;ng ta đ&atilde; sử dụng phương thức print(). Sau khi chạy chương tr&igrave;nh, tệp tek4.txt sẽ chứa nội dung sau.</p> <pre class="language-markup"><code>Lap trinh Java can ban</code></pre> <ul> <li>Phương thức printf(): Phương thức printf() c&oacute; thể được sử dụng để in chuỗi k&yacute; tự đ&atilde; được định dạng. N&oacute; bao gồm 2 tham số: chuỗi k&yacute; tự cần định dạng v&agrave; c&aacute;c đối số.</li> </ul> <p>V&iacute; dụ:</p> <pre class="language-java"><code>import java.io.PrintWriter; class Main { public static void main(String[] args) { try { PrintWriter output = new PrintWriter("tek4.txt"); String a = "cac ban"; output.printf("Xin chao %s", a); output.close(); } catch(Exception e) { e.getStackTrace(); } } }</code></pre> <p>Kết quả trong tệp tek4.txt như sau:</p> <pre class="language-markup"><code>Xin chao cac ban</code></pre> <p>Trong v&iacute; dụ tr&ecirc;n, ch&uacute;ng ta đ&atilde; tạo một PrintWriter c&oacute; t&ecirc;n l&agrave; output. PrintWriter được li&ecirc;n kết với tệp tek4.txt.</p> <pre class="language-java"><code>PrintWriter output = new PrintWriter("tek4.txt");</code></pre> <p>Để in văn bản đ&atilde; được định dạng v&agrave;o tệp, ch&uacute;ng ta đ&atilde; sử dụng phương thức printf(). Sau khi chạy chương tr&igrave;nh, tệp tek4.txt chứa nội dung sau.</p> <pre class="language-markup"><code>Xin chao cac ban</code></pre> <h3>C&aacute;c phương thức kh&aacute;c</h3> <table width="787"> <tbody> <tr> <td style="text-align: center;">Phương thức</td> <td style="text-align: center;">M&ocirc; tả</td> </tr> <tr> <td>close()</td> <td>Đ&oacute;ng PrintWriter.</td> </tr> <tr> <td>checkError()</td> <td>Trả về kết quả kiểu dữ liệu Boolean nếu c&oacute; lỗi trong Writer.</td> </tr> <tr> <td>append()</td> <td>Th&ecirc;m dữ liệu được chỉ định v&agrave;o tr&igrave;nh ghi dữ liệu.</td> </tr> </tbody> </table> <p>Tr&ecirc;n đ&acirc;y l&agrave; kh&aacute;i niệm v&agrave; v&iacute; dụ cơ bản về lớp PrintWriter trong Java. Hy vọng mọi người c&oacute; thể &aacute;p dụng v&agrave;o trong chương tr&igrave;nh của m&igrave;nh. Mọi người h&atilde;y tiếp tục theo d&otilde;i c&aacute;c b&agrave;i tiếp theo v&agrave; cập nhật c&aacute;c b&agrave;i mới nhất tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p>