Làm cách nào để tạo một URL
đối tượng mới bằng cách sử dụng tệp cục bộ, cho mục đích kiểm tra đơn vị?
Làm cách nào để tạo một URL
đối tượng mới bằng cách sử dụng tệp cục bộ, cho mục đích kiểm tra đơn vị?
Câu trả lời:
Sử dụng Java 7:
Paths.get(string).toUri().toURL();
Tuy nhiên, bạn có thể muốn có được một URI
. Ví dụ: URI
bắt đầu bằng file:///
nhưng một URL có file:/
(ít nhất, đó là những gì toString
tạo ra).
java.nio.file.Paths
. Ngoài ra, hãy chắc chắn làm rõ rằng bạn có nghĩa là việc triển khai trong "URI vs URL". Anway java.net.URL.toString()
sản xuất điều tương tự trên Unix, như nó phải. Nó chỉ hiển thị một "/" rất sai (xem sơ đồ URI tệp ). Tôi đoán đây là trong Java vì lý do, sử dụng tốt hơn java.net.URI
. Nó tạo chính xác "file: // [host] /" trong một cuộc gọi đến .toString()
.
new URL("file:///your/file/here")
/your/file/here
một đường dẫn tuyệt đối đến một tệp trên Unix / Linux. Trên Windows, nó sẽ khác.
new URL("file:my.properties");
File myFile=new File("/tmp/myfile");
URL myUrl = myFile.toURI().toURL();
hãy xem cú pháp đầy đủ ở đây: http://en.wikipedia.org/wiki/File_URI_scheme
cho các hệ thống giống như nó sẽ giống như @Alex đã nói file:///your/file/here
trong khi đối với các hệ thống Windows sẽ làfile:///c|/path/to/file
File.toURI().toURL()
là con đường để đi
.properties
tệp.
java file url
, mà trong trường hợp phương tiện của tôi mà tôi đang tìm kiếm những dạng của một file://
URL, trong Java, để sử dụng trong một .properties
tập tin, hoặc phải nhập bằng tay vv
file://
không may là cần thiết. Bị phụ thuộc hệ thống không phải là một vấn đề lớn vì đây là một tài sản có thể thay đổi.
Bạn cũng có thể dùng
[AnyClass].class.getResource(filePath)
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt
.