tek4

Lớp FileOutputStream 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 FileOutputStream trong Java v&agrave; c&aacute;c phương thức của n&oacute; c&ugrave;ng với sự trợ gi&uacute;p của c&aacute;c v&iacute; dụ dẫn chứng.</p> <p>Lớp FileOutputStream của g&oacute;i java.io c&oacute; thể được sử dụng để ghi dữ liệu (t&iacute;nh bằng byte) v&agrave;o tệp. N&oacute; kế thừa lớp trừu tượng OutputStream.</p> <h2>Tạo một FileOutputStream</h2> <p>Trước ti&ecirc;n ch&uacute;ng ta phải th&ecirc;m g&oacute;i Package java.io.FileOutputStream. Sau khi th&ecirc;m, sau đ&acirc;y l&agrave; c&aacute;ch ch&uacute;ng ta c&oacute; thể tạo FileOutputStream trong Java.</p> <h3>1. Sử dụng đường dẫn đến tệp</h3> <pre class="language-java"><code>FileOutputStream output = new FileOutputStream(String path, boolean val);</code></pre> <p>Hoặc</p> <pre class="language-java"><code>FileOutputStream output = new FileOutputStream(String path);</code></pre> <p>Ở đ&acirc;y, ch&uacute;ng ta đ&atilde; tạo một PrintStream đầu ra sẽ được li&ecirc;n kết với tệp được chỉ định bởi đường dẫn. Ngo&agrave;i ra, val l&agrave; một tham số kiểu dữ liệu boolean t&ugrave;y chọn. Nếu n&oacute; được đặt th&agrave;nh true, dữ liệu mới sẽ được nối v&agrave;o cuối dữ liệu hiện c&oacute; trong tệp. Nếu kh&ocirc;ng, dữ liệu mới sẽ ghi đ&egrave; l&ecirc;n dữ liệu hiện c&oacute; trong tệp.</p> <h3>2. Sử dụng một đối tượng của tệp</h3> <pre class="language-java"><code>FileOutputStream output = new FileOutputStream (File obj);</code></pre> <p>Ở đ&acirc;y, ch&uacute;ng ta đ&atilde; tạo một PrintStream đầu ra sẽ được li&ecirc;n kết với tệp được chỉ định bởi obj.</p> <h2>C&aacute;c phương thức của FileOutputStream</h2> <p>Lớp FileOutputStream cung cấp c&aacute;c triển khai cho c&aacute;c phương thức kh&aacute;c nhau c&oacute; trong lớp OutputStream.</p> <h3>1. Phương thức write()</h3> <ul> <li>Phương thức write(): Ghi một byte đơn v&agrave;o PrintStream đầu ra cho tệp.</li> <li>Phương thức write(byte [] arr): Ghi c&aacute;c byte từ mảng được chỉ định v&agrave;o PrintStream đầu ra.</li> <li>Phương thức write(byte [] arr, int start, int length): Ghi số lượng c&aacute;c byte bằng length v&agrave;o PrintStream đầu ra từ một mảng bắt đầu từ vị tr&iacute; start.</li> </ul> <p>V&iacute; dụ:</p> <pre class="language-java"><code>import java.io.FileOutputStream; public class Main { public static void main(String[] args) { String du_lieu = "Lap trinh Java co ban"; try { FileOutputStream output = new FileOutputStream("tek4.txt"); byte[] mang = du_lieu.getBytes(); output.write(mang); output.close(); } catch(Exception e) { e.getStackTrace(); } } }</code></pre> <p>Kết quả (Kết quả trong file tek4.txt):</p> <pre class="language-markup"><code>Lap trinh Java co ban</code></pre> <p>Trong v&iacute; dụ tr&ecirc;n, ch&uacute;ng ta đ&atilde; tạo một PrintStream đầu ra v&agrave;o tệp c&oacute; t&ecirc;n l&agrave; tek4. PrintStream đầu ra cho tệp được li&ecirc;n kết với tệp tek4.txt. C&acirc;u lệnh:</p> <pre class="language-java"><code>FileOutputStream output = new FileOutputStream("tek4.txt");</code></pre> <p>Để ghi dữ liệu v&agrave;o tệp, ch&uacute;ng ta đ&atilde; sử dụng phương thức write(). Tại đ&acirc;y, khi ch&uacute;ng ta 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 co ban</code></pre> <p>Ngo&agrave;i ra, phương thức getBytes() được sử dụng trong chương tr&igrave;nh chuyển đổi một chuỗi k&yacute; tự th&agrave;nh một mảng c&aacute;c byte.</p> <h3>2. Phương thức flush()</h3> <p>Để x&oacute;a PrintStream đầu ra, ch&uacute;ng ta c&oacute; thể sử dụng phương thức flush(). Phương thức n&agrave;y buộc PrintStream phải ghi tất cả dữ liệu tới file đ&iacute;ch.</p> <p>V&iacute; dụ:</p> <pre class="language-java"><code>import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { FileOutputStream output = null; String du_lieu = "Lap trinh Java"; try { output = new FileOutputStream("tek4.txt"); output.write(du_lieu.getBytes()); output.flush(); output.close(); } catch(Exception e) { e.getStackTrace(); } } }</code></pre> <p>Kết quả (Kết quả trong file tek4.txt):</p> <pre class="language-markup"><code>Lap trinh Java</code></pre> <h3>3. Phương thức close()</h3> <p>Để đ&oacute;ng PrintStream đầu ra cho tệp, ch&uacute;ng ta c&oacute; thể sử dụng phương thức close(). Khi phương thức n&agrave;y được gọi, ch&uacute;ng ta kh&ocirc;ng thể sử dụng c&aacute;c phương thức của lớp FileOutputStream.</p> <h3>4. 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>finalize()</td> <td>Đảm bảo phương thức close() được gọi.</td> </tr> <tr> <td>getChannel()</td> <td>Trả về đối tượng của FileChannel li&ecirc;n kết với PrintStream in đầu ra.</td> </tr> <tr> <td>getFD()</td> <td>Trả về đặc tả tệp tin li&ecirc;n kết với PrintStream in đầu ra.</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 FileOutputStream 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>