gpt4 book ai didi

Java将输入流转为URL

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:53 24 4
gpt4 key购买 nike

如何将 inputStream 转换为 URL?这是我的代码:

InputStream song1 = this.getClass().getClassLoader().getResourceAsStream("/songs/BrokenAngel.mp3");
URL song1Url = song1.toUrl(); //<- pseudo code
MediaLocator ml = new MediaLocator(song1Url);
Player p;
try {
p = Manager.createPlayer(ml);
p.start();
} catch (NoPlayerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

我不确定您是否真的想这样做。如果您的特定任务需要 URL,只需执行以下操作:

URL url = this.getClass().getClassLoader().getResource("/songs/BrokenAngel.mp3");

但是,如果您在代码的一部分中检索输入流,然后将其传递给另一个模块,并且想要找到该输入流的源 URL 是“几乎”不可能的。问题是您得到的 BufferedInputStream 包装了 FileInputStream ,它不存储有关其源的信息。即使使用反射也无法检索它。如果您真的想要这样做,您可以执行以下操作。

  1. 实现您自己的 UrlInputStream extends InputStream 进入构造函数 URL,将其存储在类变量中,通过调用 url.openStream 创建输入流() 并将其包装起来。

  2. 现在您可以像往常一样使用您的流作为输入流,直到您必须检索 URL。此时,您必须将其转换为您的 UrlInputStream 并调用您将实现的 getUrl() 方法。

关于Java将输入流转为URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com