06/04/2021, 14:47

Cách ghi nối thêm nội dung vào file trong Java - Học Java core - từ cơ bản đến nâng cao

Trong bài viết này chúng ta sẽ tìm hiểu cách ghi nối thêm nội dung vào một file trong Java. Ví dụ bạn có file A đã có nội dung sẵn rồi, nhưng muốn ghi bổ sung thêm nữa thì có thể thực hiện bằng Java code rất đơn giản. Có hai cách để nối thêm: Sử dụng ...

Trong bài viết này chúng ta sẽ tìm hiểu cách ghi nối thêm nội dung vào một file trong Java. Ví dụ bạn có file A đã có nội dung sẵn rồi, nhưng muốn ghi bổ sung thêm nữa thì có thể thực hiện bằng Java code rất đơn giản.

Có hai cách để nối thêm:

  • Sử dụng FileWriter và BufferedWriter: Trong cách này chúng ta sẽ có một hoặc nhiều chuỗi, và sẽ nối các chuỗi đó vào file. File có thể được ghi thêm chỉ bằng đối tượng FileWriter, tuy nhiên nếu sử dụng thêm BufferedWriter thì sẽ tăng tốc độ ghi file.
  • Sử dụng PrintWriter: Đây là một trong những cách tốt nhất để chắp thêm nội dung vào một file. Bất cứ điều gì bạn viết bằng cách sử dụng đối tượng PrintWriter sẽ được thêm vào file.

1. Ghi nối vào file bằng FileWriter và BufferedWriter

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;

class AppendFileDemo
{
   public static void main( String[] args )
   {	
      try{
    	String content = "This is my content which would be appended " +
        	"at the end of the specified file";
        //Specify the file name and path here
    	File file =new File("C://myfile.txt");

    	/* This logic is to create the file if the
    	 * file is not already present
    	 */
    	if(!file.exists()){
    	   file.createNewFile();
    	}

    	//Here true is to append the content to file
    	FileWriter fw = new FileWriter(file,true);
    	//BufferedWriter writer give better performance
    	BufferedWriter bw = new BufferedWriter(fw);
    	bw.write(content);
    	//Closing BufferedWriter Stream
    	bw.close();

	System.out.println("Data successfully appended at the end of file");

      }catch(IOException ioe){
         System.out.println("Exception occurred:");
    	 ioe.printStackTrace();
       }
   }
}

Output:

Data successfully appended at the end of file

Giả sử ban đầu file myfile.txt có nội dung như sau:

Lets say myfile.txt content was:

Sau khi chạy chương trình này thì file sẽ có nội dung là:

This is the already present content of my fileThis is my content which 
would be appended at the end of the specified file

2. Ghi nối vào file bằng PrintWriter

PrintWriter cho phép bạn sử dụng linh hoạt hơn. Sử dụng nó bạn có thể dễ dàng định dạng nội dung sẽ được thêm vào file.

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.IOException;

class AppendFileDemo2
{
   public static void main( String[] args )
   {	
      try{
          File file =new File("C://myfile.txt");
    	  if(!file.exists()){
    	 	file.createNewFile();
    	  }
    	  FileWriter fw = new FileWriter(file,true);
    	  BufferedWriter bw = new BufferedWriter(fw);
    	  PrintWriter pw = new PrintWriter(bw);
          //This will add a new line to the file content
    	  pw.println("");
          /* Below three statements would add three 
           * mentioned Strings to the file in new lines.
           */
    	  pw.println("This is first line");
    	  pw.println("This is the second line");
    	  pw.println("This is third line");
    	  pw.close();

	  System.out.println("Data successfully appended at the end of file");

       }catch(IOException ioe){
    	   System.out.println("Exception occurred:");
    	   ioe.printStackTrace();
      }
   }
}

Output:

Data successfully appended at the end of file

Giả sử ban đầu file có nội dung là:

This is the already present content of my file

Sau khi chạy chương trình thì file có nội dung như sau:

This is the already present content of my file
This is first line
This is the second line
This is third line

Trên là hai cách ghi nối thêm dữ liệu vào file bằng ngôn ngữ Java. Bạn nên sử dụng PrintWriter vì nó linh hoạt hơn rất nhiều trong việc định dạng nội dung sẽ được thêm vào.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0