当我传递URI时,音乐文件可以正常工作,但是当我传递字符串路径时,它不起作用。为什么?

时间:2019-04-22 15:55:57

标签: java file

我正在制作DJ MAX风格的游戏。

我正在尝试为游戏的主屏幕设置背景音乐,但是在这里我发现了一个问题。

当我以URI或String形式传递文件路径以实例化File对象时,两者都可以正常工作。

但是,当我尝试将File对象连接到FileInputStream时,具有String路径的File对象不起作用(URI FILE WORKS PERFECT)。它将引发一个错误,指出“系统找不到指定的路径”。我检查了多次,但路径正确。

我是否有理由将路径作为URI传递到File类?

感谢您的支持

属性

    public class Music extends Thread {
        private Player player;
        private boolean isLoop;
        private File file;
        private FileInputStream fis;
        private BufferedInputStream bis;

以字符串形式传递路径:不起作用

   public Music(String name, boolean isLoop) {
            try {
                this.isLoop = isLoop;
                file = new File("../musics/adventuresHimitsu.mp3");         
                fis = new FileInputStream(file);        
                bis = new BufferedInputStream(fis);
                player = new Player(bis);
            }catch(Exception e) {
                System.out.println(e.getMessage());
            }
        }

引发了一条错误消息: .. \ musics \ adventuresHimitsu.mp3(系统找不到指定的路径) 空

将路径作为URI传递:有效

    public Music(String name, boolean isLoop) {
    try {
        this.isLoop = isLoop;
        file = new File(Main.class.getResource("../musics/adventuresHimitsu.mp3").toURI());         
        fis = new FileInputStream(file);        
        bis = new BufferedInputStream(fis);
        player = new Player(bis);
    }catch(Exception e) {
        System.out.println(e.getMessage());
    }
}

0 个答案:

没有答案