मैं जावा 7 में किसी java.nio.file.Pathऑब्जेक्ट से ऑब्जेक्ट कैसे बना सकता हूं String?
अर्थात
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?लापता कोड कहां उपयोग होता है textPath।
मैं जावा 7 में किसी java.nio.file.Pathऑब्जेक्ट से ऑब्जेक्ट कैसे बना सकता हूं String?
अर्थात
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?लापता कोड कहां उपयोग होता है textPath।
जवाबों:
आप बस Pathsकक्षा का उपयोग कर सकते हैं :
Path path = Paths.get(textPath);
... यह मानते हुए कि आप निश्चित रूप से डिफ़ॉल्ट फ़ाइल सिस्टम का उपयोग करना चाहते हैं।
Path.get()प्लेटफॉर्म स्वतंत्र है? इसका मतलब है कि विंडोज में और लिनक्स में Path.get("lib","p2") जैसा होगाlib\p2lib/p2
Javadocs से .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
के समान है
Path p4 = FileSystems.getDefault().getPath("/tmp/foo");
Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));
Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");
Windows में, फ़ाइल C: \ joe \ log \ foo.log बनाता है (उपयोगकर्ता के घर को C: \ joe मानकर)
Unix में, फ़ाइल /u/joe/logs/foo.log बनाता है (उपयोगकर्ता घर को / u / joe के रूप में मानता है)।
File.separaratorवर्तमान ओएस की देखभाल करने के बजाय उपयोग करने का सुझाव देता हूं । जैसे "/tmp/foo"हैFile.separator+"tmp"+File.separator+"foo"
यदि संभव हो तो मैं Pathसीधे पथ तत्वों से निर्माण करने का सुझाव दूंगा:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
यहां तक कि जब सवाल जावा 7 के बारे में है, तो मुझे लगता है कि यह जानना महत्वपूर्ण है कि जावा 11 से, Pathकक्षा में एक स्थिर विधि है जो इसे सीधे करने की अनुमति देती है:
एक स्ट्रिंग में सभी पथ के साथ:
Path.of("/tmp/foo");
पथ के साथ कई तार टूट गए:
Path.of("/tmp","foo");
Paths.get।