प्लेटफ़ॉर्म-निर्भर "फ़ाइल विभाजक" प्लेटफ़ॉर्म-स्वतंत्र रूप से प्राप्त करने के लिए तीन समान तरीके प्रतीत होते हैं :
हम कैसे तय करते हैं कि कब कौन सा उपयोग करना है?
क्या उनके बीच भी कोई अंतर है?
प्लेटफ़ॉर्म-निर्भर "फ़ाइल विभाजक" प्लेटफ़ॉर्म-स्वतंत्र रूप से प्राप्त करने के लिए तीन समान तरीके प्रतीत होते हैं :
हम कैसे तय करते हैं कि कब कौन सा उपयोग करना है?
क्या उनके बीच भी कोई अंतर है?
जवाबों:
System.getProperties()
System.setProperty(String key, String value)
या कमांड लाइन मापदंडों के साथ कॉल द्वारा ओवरराइड किया जा सकता है-Dfile.separator=/
File.separator
डिफ़ॉल्ट फाइल सिस्टम के लिए विभाजक मिलता है।
FileSystems.getDefault()
आपको डिफ़ॉल्ट फाइल सिस्टम मिलता है।
FileSystem.getSeparator()
आपको फाइल सिस्टम के लिए विभाजक चरित्र मिलता है। ध्यान दें कि एक उदाहरण विधि के रूप में आप इसका उपयोग अलग-अलग फाइल सिस्टम को अपने कोड के लिए डिफ़ॉल्ट के अलावा कर सकते हैं, उन मामलों में जहां आपको एक जेवीएम में कई फाइल सिस्टम पर काम करने के लिए अपने कोड की आवश्यकता होती है।
FileSystem
निपटाए गए प्रत्येक फ़ाइल सिस्टम के लिए एक अलग उदाहरण होगा ।
यदि आपका कोड फाइल सिस्टम सीमाओं को पार नहीं करता है, यानी आप सिर्फ एक फाइल सिस्टम के साथ काम कर रहे हैं, तो उपयोग करें java.io.File.separator
।
जैसा कि समझाया गया है, आपको अपने एफएस के लिए डिफ़ॉल्ट विभाजक मिलेगा। जैसा कि Bringer128 ने समझाया, System.getProperty("file.separator")
कमांड लाइन विकल्पों के माध्यम से ओवरराइड किया जा सकता है और जैसा कि सुरक्षित नहीं है java.io.File.separator
।
पिछले एक, java.nio.file.FileSystems.getDefault().getSeparator();
जावा 7 में पेश किया गया था, इसलिए आप इसे अभी के लिए अनदेखा कर सकते हैं यदि आप चाहते हैं कि आपका कोड पुराने जावा संस्करणों में पोर्टेबल हो।
तो, इन विकल्पों में से हर एक लगभग दूसरों के समान है, लेकिन काफी नहीं है। अपनी आवश्यकताओं के अनुरूप एक चुनें।
java.io
पक्ष में पदावनत किया जाता है java.nio
?
java.io
की तुलना में थोड़ा कम स्तर है java.nio
, लेकिन अभी भी बहुत और व्यापक रूप से उपयोगी है। आप यहां अंतर देख सकते हैं: blogs.oracle.com/slc/entry/javanio_vs_javaio । nio
प्रतिस्थापित नहीं करता है io
, यह इसे कई तरीकों से बढ़ाता है (और io
हुड के नीचे उपयोग करता है )।