मैं जावा 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\p2
lib/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
।