Java 使用FileInputStream从相对路径读取文件

Java 使用FileInputStream从相对路径读取文件,java,path,relative-path,fileinputstream,Java,Path,Relative Path,Fileinputstream,我想从相对路径读取文件。 我尝试了以下代码 InputStream in = new FileInputStream(".//Audio//w1.wav"); 错误: java.io.FileNotFoundException: .\Audio\w1.wav (The system cannot find the path specified) 我还尝试将路径指定为“Audio/w1.wav”、“Audio//w1.wav”,但它不起作用 如何让系统找到文件?您可以这样做来获取文件 Clas

我想从相对路径读取文件。 我尝试了以下代码

InputStream in = new FileInputStream(".//Audio//w1.wav");
错误:

java.io.FileNotFoundException: .\Audio\w1.wav (The system cannot find the path specified)
我还尝试将路径指定为“Audio/w1.wav”、“Audio//w1.wav”,但它不起作用


如何让系统找到文件?

您可以这样做来获取文件

ClassLoader resource = this.getClass().getClassLoader();
URL path = this.getClass().getResource("/Audio/w1.wav");

//Since you have the path you can get the file as you want
//To get the file,  
File file = new File(path.getFile());

问题似乎是走错了路。要找到答案,首先要找出
在哪里。要执行此操作,请运行:

System.out.println(new File(".").getAbsolutePath());
这将打印您所在的整个路径,从
c:\
/
开始,具体取决于您的操作系统

现在看看资源管理器中的文件夹,您希望在该文件夹中
的所有内容都在该文件夹中吗

  • 如果是:检查打字错误,在
    \
    /
    之间切换,并检查文件访问权限
  • 如果否:调整路径或移动文件

ClassLoader resource=this.getClass().getClassLoader();URL路径=resource.getResource(“/Audio/w1.wav”);in=newfileinputstream(新文件(path.getFile());swar=新音频流(in);AudioPlayer.player.start(swar);线程“AWT-EventQueue-0”java.lang.NullPointerExceptionException中的异常位于-->in=new FileInputStream(新文件(path.getFile());怎么办?首先试着打印路径,看看你的路径是否正确,试着获取文件,看看你是否可以,我不确定你的in变量是什么。//不确定你的in变量是什么。//-->ClassLoader resource=this.getClass().getClassLoader();URL路径=resource.getResource(“/Audio/w1.wav”);InputStream in=新文件InputStream(新文件(path.getFile());AudioStream swar=新的AudioStream(in);AudioPlayer.player.start(swar);我想播放具有相对路径的音频文件。请帮助
AudioStream swar=新的AudioStream(in)音频流到底是什么?改用
音频输入流
。它可以接受来自任何流的输入,包括来自URL的输入。一般提示:1)要更快获得更好的帮助,请添加或。2) 应用程序资源在部署时将成为嵌入式资源,因此现在就开始访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参见。