gpt4 book ai didi

java - 如何读取 jar 文件中的媒体文件(音频文件,而不是文本文件)?

转载 作者:行者123 更新时间:2023-11-30 04:50:31 24 4
gpt4 key购买 nike

    Media.jar
|--gmor.wav
+--some.txt

下面的代码无法获取输入流,并抛出异常java.lang.NullPointerException .
输入 = JarFileRead.class.getClassLoader().getResourceAsStream("some.txt");可以工作。

[代码]

import java.io.*;
public class JarFileRead
{
public static InputStream input = null;
public JarFileRead()
{
try
{
input = JarFileRead.class.getClassLoader().getResourceAsStream("gmor.wav");

while(input.read()!=-1)
{

System.out.print(input.read());
}
input.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String [] args)
{
new JarFileRead();
}

}

[/代码]

最佳答案

如果 getResourceAsStream 方法找不到您请求的资源,则返回 null。您的代码不会检查 null,这就是导致 NPE 的原因。

所以解决办法是:

  • 检查文件是否确实存在于 JAR 中应存在的位置。

  • 将路径名更改为适合您使用该方法的方式。

<小时/>

注意:如果您尝试相对于 JarFileRead 命名文件,那么您需要执行以下操作:

JarFileRead.class.getResourceAsStream("gmor.wav");

您当前执行的方式应该解析相对于命名空间根的相对路径;即,它相当于请求 "/gmor.wav"。但这就是你的意思,写起来更简单、更清晰:

JarFileRead.class.getResourceAsStream("/gmor.wav");

关于java - 如何读取 jar 文件中的媒体文件(音频文件,而不是文本文件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952358/

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