Giả sử bạn có một quy trình bên ngoài ghi tệp vào một số thư mục và bạn đã có một quá trình riêng định định đọc tệp từ thư mục này định kỳ. Vấn đề cần tránh là đọc một tệp mà quy trình khác hiện đang ở giữa việc ghi ra, vì vậy nó sẽ không đầy đủ. Hiện tại, quá trình đọc sử dụng kiểm tra bộ đếm thời gian của tệp tuổi tối thiểu, vì vậy, nó bỏ qua tất cả các tệp trừ khi ngày sửa đổi cuối cùng của chúng vượt quá XX giây.Cách kiểm tra xem tệp có "hoàn thành" (hoàn toàn được viết) bằng Java
Tôi tự hỏi liệu có cách nào tốt hơn để giải quyết vấn đề này không. Nếu filetype không xác định (có thể là một số định dạng khác nhau) thì có một số cách đáng tin cậy để kiểm tra tiêu đề của tập tin cho số byte cần có trong tệp không, so với số byte hiện có trong tệp để xác nhận chúng khớp?
Cảm ơn mọi suy nghĩ hoặc ý tưởng!
Bạn có bất cứ quyền kiểm soát quá trình ghi tập tin vào thư mục mà bạn xem? –
Ngoài việc đổi tên tệp khi đã hoàn tất, cách tiếp cận tôi thực hiện là làm cho nó ổn khi đọc tệp khi nó được ghi vào (nghĩ 'đuôi' trong Unix) –