Lấy dữ liệu trong file java

Cho em hỏi một chút về lấy file trong java ạ. Em có một bảng thư viện được lưu trong file là books.txt như hình dưới đây

1 Think big and Grow rich                            10.95
2 The 7 habits of highly effective people            15.97
3 How to win friends and influence people            14.95

Các số đầu tiên của mỗi dòng (1,2,3) là id của quyển sách, sau đó là name của quyển sách và cuối cùng là price. Ngoài ra, có 2 class nữa để làm việc với file.

Class đầu tiên

public class Book {
    int id;
    String name;
    double price;
    // attributes id, name, price

// constructor
public Book(int id, String name, double price) {
    this.id =id;
    this.name=name;
    this.price =price;
};

Class thứ hai

  public class BookManager {
      ArrayList<Book> books;
      // attribute books

public BookManager() {
    this.books =new ArrayList<>();
    // This constructor initializes this.books as an empty list
}

public void loadFromFile()  {
        }

Yêu cầu của đề bài là : Phương thức loadFromFile() trong class BookManager đọc tệp books.txt, phân tích cú pháp
dữ liệu trong tệp vào các đối tượng Book và thêm chúng vào
this.books.
Em xin cảm ơn ạ

Làm đến đâu thì hay đến đó. Ít nhất thì bạn cũng mở tập tin lên và đọc được từng dòng trước. Không chỉ cách mở và đọc đâu, vì nó nhiều quá, bạn tốn vài giây để tìm kiếm được vài triệu đoạn mã mẫu cho thao tác này.

Việc khó là tách từng dòng dữ liệu ra để lấu được 3 giá trị tương ứng. Cấu trúc văn bản này có thể dùng phương thức String.split để tách theo khoảng trắng. Phần tử đầu tiên là mã, các phần tử giữa là tên và phần tử cuối là giá.
Nhưng cách hay hơn và hợp lý thì có lẽ là RegEx (biểu thức chính quy), cái này phải đọc - học - hiểu thì mới tự vận dụng được.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?