Tôi quan tâm đến việc phân tích cú pháp một tệp văn bản khá lớn trong Java (1.6.x) và tự hỏi xem phương pháp nào được coi là phương pháp hay nhất?Phân tích cú pháp các tệp văn bản lớn trong thời gian thực (Java)
Tệp có thể có kích thước khoảng 1Mb và sẽ bao gồm hàng nghìn mục nhập dọc theo các dòng;
Entry
{
property1=value1
property2=value2
...
}
, vv
bản năng đầu tiên của tôi là sử dụng biểu thức thông thường, nhưng tôi không có kinh nghiệm trước đây của việc sử dụng Java trong một môi trường sản xuất, và do đó không chắc chắn cách mạnh mẽ các lớp java.util.regex là .
Để làm rõ một chút, ứng dụng của tôi sẽ trở thành ứng dụng web (JSP) phân tích tệp được đề cập và hiển thị các giá trị khác nhau mà tệp truy xuất. Chỉ có một tệp được phân tích cú pháp (nó nằm trong thư mục của bên thứ ba trên máy chủ).
Ứng dụng sẽ có mức sử dụng khá thấp (có thể chỉ một số ít người dùng sử dụng nó vài lần trong ngày), nhưng điều quan trọng là khi họ sử dụng, thông tin sẽ được truy xuất nhanh nhất có thể.
Ngoài ra, có bất kỳ biện pháp phòng ngừa nào để thực hiện việc tải tệp vào bộ nhớ mỗi khi được phân tích cú pháp không?
Có ai có thể đề xuất phương pháp tiếp cận ở đây không?
Cảm ơn
Bạn có nghĩa là thời gian thực hoặc nhanh chóng không? Hai là rất khác nhau. Thời gian thực ngụ ý rằng bạn đưa ra câu trả lời cho mọi đầu vào mà không phải đợi thêm đầu vào. Điều này thường chậm hơn so với xử lý theo lô. –
Ngoài ra, 1 meg không còn được coi là lớn trừ khi bạn đang chạy trên một máy có bộ nhớ ít hơn 64 meg. –
Ý tôi là - Tôi muốn yêu cầu được gửi từ giao diện người dùng web đến máy chủ, sẽ báo hiệu rằng nó sẽ phân tích cú pháp tệp và trả về kết quả (vào bất kỳ cấu trúc dữ liệu nào thích hợp) và sau đó xử lý chúng để hiển thị giao diện người dùng. –