Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để ghi đè một dòng trong tệp .txt bằng Java?

API đã được sử dụng

ReplaceAll () phương thức của lớp String chấp nhận hai chuỗi đại diện cho một biểu thức chính quy và một Chuỗi thay thế và thay thế các giá trị phù hợp bằng Chuỗi đã cho.

Lớp java.util (hàm tạo) chấp nhận các đối tượng File, InputStream, Path và, String, đọc tất cả các kiểu dữ liệu nguyên thủy và mã thông báo Chuỗi (từ nguồn đã cho) bằng mã thông báo sử dụng biểu thức chính quy. Để đọc các kiểu dữ liệu khác nhau từ nguồn bằng các phương thức nextXXX () được cung cấp.

Bộ đệm chuỗi class là một thay thế có thể thay đổi cho String, sau khi khởi tạo lớp này, bạn có thể thêm dữ liệu vào nó bằng phương thức append ().

Quy trình

Để ghi đè lên một dòng cụ thể của tệp -

Đọc nội dung của tệp thành Chuỗi -

  • Khởi tạo lớp Tệp.

  • Khởi tạo lớp Máy quét truyền tệp dưới dạng tham số tới phương thức khởi tạo của nó.

  • Tạo một đối tượng StringBuffer trống.

  • thêm nội dung của từng dòng tệp vào đối tượng StringBuffer bằng phương thức append ().

  • Chuyển đổi StringBuffer thành String bằng phương thức toString ().

  • Đóng đối tượng Máy quét.

Gọi ReplaceAll () phương thức trên chuỗi thu được chuyển dòng cần thay thế (dòng cũ) và dòng thay thế (dòng mới) dưới dạng tham số.

Viết lại nội dung tệp -

  • Khởi tạo lớp FileWriter.

  • Thêm kết quả của phương thức ReplaceAll () vào đối tượng FileWriter bằng phương thức append ().

  • Đẩy dữ liệu đã thêm vào tệp bằng phương thức flush ().

Ví dụ

 import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class OverwriteLine {public static void main (String args [ ]) ném IOException {// Khởi tạo lớp Tệp String filePath ="D://input.txt"; // Khởi tạo lớp Scanner để đọc tệp Scanner sc =new Scanner (new File (filePath)); // khởi tạo lớp StringBuffer StringBuffer buffer =new StringBuffer (); // Đọc các dòng của tệp và nối chúng vào StringBuffer while (sc.hasNextLine ()) {buffer.append (sc.nextLine () + System.lineSeparator ()); } String fileContents =buffer.toString (); System.out.println ("Nội dung của tệp:" + fileContents); // đóng đối tượng Scanner sc.close (); String oldLine ="Không có điều kiện tiên quyết và không có trở ngại. Đơn giản là Học dễ dàng!"; String newLine ="Thưởng thức nội dung miễn phí"; // Thay thế dòng cũ bằng dòng mới fileContents =fileContents.replaceAll (oldLine, newLine); // khởi tạo lớp FileWriter FileWriterriter =new FileWriter (filePath); System.out.println (""); System.out.println ("dữ liệu mới:" + fileContents); riter.append (fileContents); nhà văn.flush (); }} 

Đầu ra

 Nội dung của tệp:Tutorials Point bắt nguồn từ ý tưởng rằng tồn tại một lớp độc giả phản hồi tốt hơn với nội dung trực tuyến và thích học các kỹ năng mới. Nội dung và tài nguyên của chúng tôi có sẵn miễn phí và chúng tôi muốn giữ nguyên như vậy khuyến khích người đọc của chúng tôi có được nhiều kỹ năng mà họ muốn. Đơn giản là Học dễ dàng! Dữ liệu mới:Tutorials Point bắt nguồn từ ý tưởng rằng tồn tại một lớp người đọc phản hồi tốt hơn với nội dung trực tuyến và thích học các kỹ năng mới. độc giả của chúng tôi có được nhiều kỹ năng như họ muốn.