यह शायद पिछली पोस्ट के समान है, लेकिन मैं स्थानीय रूप से नेटवर्क पर लॉकिंग के उपयोग के बारे में विशिष्ट होना चाहता हूं। मैं एक साझा स्थान पर एक फाइल लिखना चाहता हूं, इसलिए यह नेटवर्क पर जा सकता है (निश्चित रूप से एक विंडोज नेटवर्क, शायद मैक)। मैं अन्य लोगों को इस फाइल के किसी हिस्से को पढ़ने से रोकना चाहता हूं, जबकि इसे लिखा जा रहा है। यह एक अत्यधिक समवर्ती प्रक्रिया नहीं होगी, और फाइलें आम तौर पर 10 एमबी से कम होंगी।नेटवर्क पर जावा फ़ाइल लॉकिंग
मैंने FileLock
प्रलेखन और File
दस्तावेज पढ़ा है और कुछ हद तक उलझन में है, जो सुरक्षित है और क्या नहीं है। मैं इसके भाग के बजाए पूरी फाइल को लॉक करना चाहता हूं।
क्या मैं FileChannel.tryLock()
का उपयोग कर सकता हूं, और यह नेटवर्क पर सुरक्षित है, या यह नेटवर्क के प्रकार पर निर्भर करता है? क्या यह एक मानक विंडोज नेटवर्क पर काम करेगा (यदि ऐसी कोई चीज है)।
यदि यह काम नहीं करता है, तो शून्य बाइट फ़ाइल या निर्देशिका को लॉक फ़ाइल के रूप में बनाने की सबसे अच्छी बात है, और फिर मुख्य फ़ाइल लिखें। वह File.createNewFile()
प्रलेखन कहता है कि फ़ाइल लॉकिंग के लिए इसका उपयोग क्यों न करें? मैं सराहना करता हूं कि यह दौड़ की स्थिति के अधीन है, और आदर्श नहीं है।