java - 将字符串数据分配给 URL 对象

标签 java string url

是否可以将字符串数据分配给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/

相关文章:

java - 如何从文件中一一读取整数和字符?

java - 下面是我的用于查找重复项的 Java 程序。这里重复输出我只想重复的字符作为输出

java - 为什么这段代码没有引起ConcurrentModificationException?

c - 如何使用 read 将字符正确存储在数组中?

batch-file - 遍历批处理文件中的一堆 url

java - 我们如何处理Java中float类型的溢出边缘情况?

python - 解析数据集的字符串

c++ - std::string 比较,是否按字典顺序

http - '?' versus ' #!'在网址中

apache-flex - 使用 Flex navigatetoUrl 函数进行 url 编码