java我应该将缓冲流链接到输入流,还是在将声音库作为嵌入式资源加载时使用URL类?
我已经编写了一个程序,它加载到一个声音库中,可以压缩为一个JAR文件,声音库文件嵌入在JAR中并可以从JAR中访问
为了澄清,下面的代码行属于用于设置MIDI音序器的方法。这里的要求是使用soundbank类加载soundbank文件(默认的MIDI soundbank除外),然后可以使用该类设置MIDI合成器
在研究将soundbank文件作为嵌入式资源加载的方法时,我遇到了两种似乎有效的方法(为了清晰起见,我省略了try/catch语句):
方法1
InputStream is = getClass().getResourceAsStream("/soundbank.sf2");
InputStream sb = new BufferedInputStream(is);
方法2
URL sb = getClass().getResource("/soundbank.sf2");
在仔细阅读了源代码之后,这两种方法似乎非常相似,在这个级别上它们可能很难区分。我发现甲骨文的解释非常有用
自从发布后,我发现我也可以使用以下方法(尽管这样写似乎是相当多余的,因为方法1的第一件事就是尝试这种方法。我想可能会节省一两纳秒的时间…)
InputStream is = ClassLoader.getSystemResourceAsStream("/soundbank.sf2");
InputStream sb = new BufferedInputStream(is);
很明显,这种方法不适合用于基于web的应用程序,但这不适用于本问题中概述的情况
共 (0) 个答案