01/10/2018, 17:32
Đọc file txt nhiều dòng
cho em hỏi ví dụ 1 file txt có số dòng lớn hơn 50k thì giải quyết làm sao để đọc mà không bị đơ chương trình , hiện tại em dùng cách là sử dụng luồng stream để đọc vào 1 lượt hết cả 50k line rồi lưu lại trong 1 List >>> cách này chỉ đúng với file số dòng nhỏ vì load nhanh , nhưng file số dòng lớn thì ctr` bị đơ luôn. Em có nghĩ ra 1 giải pháp như thế này
- dùng BufferedReader để đọc từng dòng đọc đến đâu dùng đến đó chứ không đọc hết toàn bộ rồi mới dùng >>> cách này giúp ctr` ko bị đơ nữa nhưng mắc 1 cái là ko thể hiển thị tổng số dòng có trong file đó
Bài liên quan
Hi Madafaker.
Nếu bạn làm ui thì có nhiều giải pháp. Đọc buffer trên 1 luồng khác sau đó thao tác trên một luồng khác (Không bị đơ mà vẫn lòad hết file sau khoảng vài giây). Còn hiện số dòng thì trong khi luồng đọc đang chạy bạn có thể thêm 1 thanh loading để báo. Nói chung có nhiều giải pháp nhưng cơ bản là đọc từng phần và dùng đa luồng.
Vậy tức là bạn muốn tính tổng số dòng của 1 file à ? Vậy bạn có thể thử dùng
Scanner
với đoạn code sauVà đây là kết quả
Nếu không thì có thể dùng cách của anh Phong_Ky_Vo
Hi Nguyễn Đình Anh.
Đã thế thì chia làm 4 luồng (Tùy số nhân CPU) rồi chạy cho từng phần của file luôn.
vậy luồng chính sẽ đợi các luồng kia thực thi xong rồi mới chạy à…
Hi Madafaker.
Cái này phụ thuộc vào phương pháp luận hay đại khái thế. Nó phụ thuộc vào thực tại khách quan. Kiểu như muốn tìm phần tử lớn nhất của một mảng ngẫu nhiên thì bạn phải đọc tất cả các phần tử của mảng. Muốn biết file có bao nhiêu dòng thì bạn phải đọc hết file đó. Thế thôi, các giải pháp chỉ giảm thời gian cũng như tương tác người dùng thân thiện thôi chứ không thể vượt qua được thực tại khách quan đó.