Cố gắng sắp xếp/phân tích cú pháp một số tệp nhật ký. Các mục nhập bắt đầu với một ngày sau đó có thể mở rộng nhiều dòng.Máy quét Java sẽ không theo dõi tệp
Tác phẩm này hoạt động nhưng không bao giờ thấy các mục nhập mới cần lưu.
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]");
}
}
Dường như máy quét() hoặc hasNext() của Máy quét mới phát hiện các mục nhập mới cần lưu.
Bất kỳ ý tưởng nào khác về cách tôi có thể triển khai, về cơ bản, một đuôi -f với dấu phân cách tùy chỉnh.
ok - sử dụng lời khuyên của Kelly tôi đang kiểm tra & làm mới máy quét, hoạt động này. Cảm ơn bạn !!
nếu có ai đó có đề xuất cải thiện plz!
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]");
}
Thread.sleep(50);
if(bis.available() > 0){
src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
}
}
Bây giờ nó làm gì, nó ném một ngoại lệ hoặc treo trong một vòng lặp vô hạn mà không phát hiện dữ liệu mới? –
vòng lặp vô hạn mà không phát hiện dữ liệu mới. đã thử nó một loạt các cách, thử nghiệm hasNext() 1, đệm/unbuffered .. –