किसी और की प्रक्रिया एक समय में एक रेखा को जोड़कर एक CSV फ़ाइल बना रही है, जैसे घटनाएं होती हैं। मेरे पास फ़ाइल प्रारूप या अन्य प्रक्रिया पर कोई नियंत्रण नहीं है, लेकिन मुझे पता है कि यह केवल संलग्न होगा।जावा में, एक फ़ाइल को जोड़ने के लिए सबसे अच्छा/सुरक्षित पैटर्न क्या है?
जावा प्रोग्राम में, मैं इस फ़ाइल की निगरानी करना चाहता हूं, और जब एक लाइन संलग्न की जाती है तो नई लाइन पढ़ती है और सामग्री के अनुसार प्रतिक्रिया देती है। अब के लिए सीएसवी पार्सिंग मुद्दे को अनदेखा करें। परिवर्तनों के लिए फ़ाइल की निगरानी करने और एक समय में एक पंक्ति पढ़ने का सबसे अच्छा तरीका क्या है?
आदर्श रूप से यह मानक पुस्तकालय कक्षाओं का उपयोग करेगा। फ़ाइल नेटवर्क ड्राइव पर भी हो सकती है, इसलिए मुझे विफलता के लिए कुछ मजबूत चाहिए। यदि संभव हो तो मैं मतदान का उपयोग नहीं करना चाहूंगा - मैं इसके बजाय कुछ प्रकार के अवरोध समाधान पसंद करूंगा।
संपादित करें - यह देखते हुए कि मानक वर्गों (उस उत्तर के लिए धन्यवाद) के साथ एक अवरोध समाधान संभव नहीं है, सबसे मजबूत मतदान समाधान क्या है? मैं हर बार पूरी फाइल को फिर से नहीं पढ़ूंगा क्योंकि यह काफी बड़ा हो सकता है।
उपरोक्त कोड संलग्न लाइन को पढ़ने की गारंटी देते हैं? – DerekY
मेरी आवश्यकता फ़ोल्डर को देखना है और जैसे ही फ़ाइल को फ़ोल्डर में जोड़ा/लिखा/स्थानांतरित किया जाता है, उस पर तत्काल कार्रवाई करें (उदाहरण के लिए फ़ाइल को ईमेल करें)। जिस समस्या में मैं चल रहा हूं वह यह है कि जब फ़ाइल बड़ी होती है, तो लिखित या प्रतिलिपि प्राप्त करने में कुछ समय लग सकता है, जबकि फ़ाइल के पहले बाइट फ़ोल्डर में लिखे जाने पर FILE_CREATE ईवेंट की घोषणा की जाती है। तो मैं तुरंत कार्रवाई नहीं कर सकता। यह निर्धारित करने का एक विश्वसनीय तरीका क्या है कि फ़ाइल पर कोई कार्रवाई करने से पहले पूरी तरह से लिखा गया है या नहीं? –