是否可以将字符串数据分配给java.net.URL
?
我使用的 API 方法仅接受 URL 参数。但我已经有了内容。
String content = "some text data";
URL url = createURLWithContent(content);
MyApi.handleContent( url );
createURLWithContent()
- 方法应该创建包含 content
中的数据的 URL
对象,因此当 URL.getContent ()
被调用,返回 String(或包含 String 的 Stream)。
我想我几年前就见过这样的事情。
最佳答案
将内容写入文件,然后提供 file:
URL,例如
public static URL createURLWithContent(String content) throws IOException {
Path tempFile = Files.createTempFile("UrlContent", null);
tempFile.toFile().deleteOnExit();
Files.writeString(tempFile, content);
return tempFile.toUri().toURL();
}
这将返回如下 URL:
file:/C:/path/to/temp/UrlContent5767435257817348076.tmp
如果您的程序长时间运行,您应该在 API 调用后自行处理临时文件的删除,而不是依赖 deleteOnExit()
。
如果您不想将内容保存在磁盘上,您也可以实现自己的内存中 URLStreamHandler
,并在使用 URL(String protocol, String host, int port, String file, URLStreamHandler handler)
创建 URL 时指定它构造函数。这涉及更多内容,超出了本答案的范围。
关于java - 将字符串数据分配给 URL 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57995985/