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

Làm cách nào để đọc tệp .txt bằng RandomAccessFile trong Java?

Nói chung, trong khi đọc hoặc ghi dữ liệu vào tệp, bạn chỉ có thể đọc hoặc ghi dữ liệu từ đầu tệp. bạn không thể đọc / ghi từ vị trí ngẫu nhiên.

Java.io. RandomAccessFile lớp trong Java cho phép bạn đọc / ghi dữ liệu vào một tệp truy cập ngẫu nhiên.

Điều này hoạt động tương tự như một mảng lớn các byte có chỉ mục hoặc, con trỏ được gọi là con trỏ tệp, bạn có thể lấy vị trí của con trỏ này bằng cách sử dụng getFilePointer () và đặt nó bằng phương thức seek ().

Lớp này cung cấp nhiều phương thức khác nhau để đọc và ghi dữ liệu vào một tệp. readLine () phương thức của lớp này đọc dòng tiếp theo từ tệp và trả về ở dạng Chuỗi.

Để đọc dữ liệu từ một tệp bằng cách sử dụng readLine () phương thức của lớp này -

  • Khởi tạo lớp Tệp bằng cách chuyển đường dẫn của tệp được yêu cầu ở định dạng Chuỗi.

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

  • Khởi tạo lớp RandomAccessFile bằng cách chuyển đối tượng Tệp đã tạo ở trên và một chế độ truy cập đại diện cho chuỗi (r:read, rw:read / write, v.v.)

  • lặp qua tệp trong khi vị trí của nó nhỏ hơn chiều dài (phương thức length ()).

  • Nối từng dòng vào đối tượng StringBuffer đã tạo ở trên.

Ví dụ

 import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileExample {public static void main (String args []) ném IOException {String filePath ="D:// input .txt "; // Khởi tạo lớp Tệp File file =new File (filePath); // Khởi tạo bộ đệm StringBuffer StringBuffer =new StringBuffer (); // khởi tạo RandomAccessFile RandomAccessFile raFile =new RandomAccessFile (file, "rw"); // Đọc từng dòng bằng phương thức readLine () while (raFile.getFilePointer ()  

Đầ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 nhất mà họ muốn.