कुछ लॉग फ़ाइलों को पूंछ/पार्स करने की कोशिश कर रहा है। प्रविष्टियां एक तिथि से शुरू होती हैं और फिर कई लाइनों का विस्तार कर सकती हैं।जावा स्कैनर फ़ाइल का पालन नहीं करेगा
यह काम करता है, लेकिन फ़ाइल में नई प्रविष्टियां कभी नहीं देखती हैं।
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() + " ]");
}
}
स्कैनर की अगली() या hasNext की तरह लग नहीं करता है() फाइल करने के लिए नई प्रविष्टियां पता लगाता है।
कोई विचार मैं और कैसे लागू कर सकता हूं, मूल रूप से, कस्टम डेलीमीटर के साथ एक पूंछ-एफ।
ठीक - केली की सलाह का उपयोग कर मैं & जाँच कर रहा हूँ स्कैनर ताज़ा, यह काम करता है। धन्यवाद !!
यदि किसी के पास सुधार सुझाव हैं तो कृपया करें!
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 ");
}
}
अब यह क्या करता है, क्या यह एक अपवाद फेंकता है या नए डेटा का पता लगाए बिना अनंत लूप में लटकता है? नए डेटा का पता लगाने के बिना –
अनंत लूप। इसे तरीकों का एक गुच्छा करने की कोशिश की, परीक्षण है अगला() 1, buffered/unbuffered .. –