ฉันจะสร้างURL
วัตถุใหม่โดยใช้ไฟล์โลคัลเพื่อจุดประสงค์ในการทดสอบหน่วยได้อย่างไร
ฉันจะสร้างURL
วัตถุใหม่โดยใช้ไฟล์โลคัลเพื่อจุดประสงค์ในการทดสอบหน่วยได้อย่างไร
คำตอบ:
new File(path).toURI().toURL();
ใช้ Java 7:
Paths.get(string).toUri().toURL();
URI
แต่คุณอาจต้องการที่จะได้รับ เช่น a URI
เริ่มต้นด้วยfile:///
แต่ URL ที่มีfile:/
(อย่างน้อยนั่นคือสิ่งที่toString
สร้างขึ้น)
java.nio.file.Paths
ง่ายต่อการคลิกผ่านไป นอกจากนี้โปรดอย่าลืมระบุว่าคุณหมายถึงการใช้งานใน "URI กับ URL" Anway java.net.URL.toString()
ผลิตสิ่งเดียวกันใน Unix ตามที่มันต้องการ จะแสดงเพียงหนึ่ง "/" ซึ่งผิดมาก (ดูรูปแบบไฟล์ URI ) ผมคิดว่านี้คือใน Java เพราะเหตุผล, java.net.URI
ใช้ดีกว่า ได้อย่างถูกต้องสร้าง "file: // [โฮสต์] /" .toString()
ในการเรียกไปยัง
new File("path_to_file").toURI().toURL();
new URL("file:///your/file/here")
/your/file/here
เป็นพา ธ สัมบูรณ์ไปยังไฟล์บน Unix / Linux บน Windows มันจะแตกต่างกันฉันคิดว่า
new URL("file:my.properties");
File myFile=new File("/tmp/myfile");
URL myUrl = myFile.toURI().toURL();
ดูที่นี่สำหรับไวยากรณ์ทั้งหมด: http://en.wikipedia.org/wiki/File_URI_scheme
สำหรับระบบที่เหมือนยูนิกซ์มันจะเป็น @Alex ที่กล่าวfile:///your/file/here
ในขณะที่ระบบ Windows จะเป็นfile:///c|/path/to/file
File.toURI().toURL()
เป็นวิธีที่จะไป
.properties
ไฟล์
java file url
ซึ่งในกรณีของฉันหมายความว่าฉันกำลังค้นหารูปแบบของfile://
URL ใน Java เพื่อใช้ใน.properties
ไฟล์หรือพิมพ์ด้วยตนเอง ฯลฯ
file://
น่าเสียดายที่จำเป็น การพึ่งพาระบบนั้นไม่ได้เป็นปัญหาใหญ่เพราะเป็นคุณสมบัติที่ไม่แน่นอน
คุณยังสามารถใช้
[AnyClass].class.getResource(filePath)
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt
นั้น