gpt4 book ai didi

java - "cannot find the file specified",检查多次并且看起来正确

转载 作者:行者123 更新时间:2023-12-02 11:03:38 25 4
gpt4 key购买 nike

为什么我的文件没有被正确读取?我查了一下,res文件夹是这个项目中的资源。

public class Testing {

private File file;
private Clip clip;
private AudioInputStream audioIn;

public Testing() {
String path = "/res/shot.mp3";
file = new File(path);
System.out.println(file.toString());
try {
audioIn = AudioSystem.getAudioInputStream(file);
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch(Exception e) {
e.printStackTrace();
}
// java.io.FileNotFoundException: \res\shot.mp3
// (The system cannot find the path specified)
}

public static void main(String[] args) {

new Testing();
}
}

我的包资源管理器。

enter image description here

我尝试将路径更改为/SoundTest/res/shot.mp3,但仍然没有成功。有什么想法吗?

最佳答案

/res/shot.mp3 是绝对路径。仅当 res 位于文件系统的根目录中时,此功能才有效。你说“资源文件夹是这个项目中的一个文件夹”。从您的屏幕截图来看,目录结构类似于

/home/your_user_dir/your_project_dir
/src ...
/bin
/res

因此,您需要更改 File 对象的创建,使其具有正确的相对路径或使用绝对路径。

你可以使用

InputStream is = this.getClass().getClassLoader().getResourceAsStream("/res/shot.mp3");

然后使用 AudioSystem.getAudioInputStream(InputStream) 创建 AudioInputStream -- documentation

因此将您的代码更改为

    String path = "/res/shot.mp3";
InputStream is = this.getClass().getClassLoader().getResourceAsStream(path);
try {
audioIn = AudioSystem.getAudioInputStream(is);
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch(Exception e) {
e.printStackTrace();
}

关于java - "cannot find the file specified",检查多次并且看起来正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51146905/

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