簡體   English   中英

不確定如何通過文件位置訪問文件

[英]Unsure how to access a file through its location

根據下面的示例,我計算機上的類位置為C:\\ Users \\ daniel \\ Desktop \\ Prototype2 \\ src \\ examples \\ WavAppender.java

如果將wav文件放在相同的示例目錄中,如何更改以下代碼?

import java.io.File;
import java.io.IOException;
import java.io.SequenceInputStream;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;

public class WavAppender {
public static void main(String[] args) {
    String wavFile1 = "D:\\wav1.wav";
    String wavFile2 = "D:\\wav2.wav";

    try {
        AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wavFile1));
        AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2));

        AudioInputStream appendedFiles = 
                        new AudioInputStream(
                            new SequenceInputStream(clip1, clip2),     
                            clip1.getFormat(), 
                            clip1.getFrameLength() + clip2.getFrameLength());

        AudioSystem.write(appendedFiles, 
                        AudioFileFormat.Type.WAVE, 
                        new File("D:\\wavAppended.wav"));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

這取決於執行目錄的執行位置。 如果它是示例目錄,那么您的.java文件也很簡單:

new File("wavAppended.wav");

您可以使用絕對路徑或相對路徑來獲取文件。

大多數人會認為絕對值不是必需的甚至有害的,因為它們很容易破壞您的程序。 我的意見是,它們更易於使用,您可以將它們用作確保程序正常工作的第一步。

無論如何,絕對版本將是:

"C:\\Users\\daniel\\Desktop\\Prototype2\\src\\examples\\wav?.wav"

要么

"C:/Users/daniel/Desktop/Prototype2/src/examples/wav?.wav"

相對路徑是

"examples\\wav?.wav"

要么

"examples/wav?.wav"

因為您的根路徑是"C:/Users/daniel/Desktop/Prototype2/src/"

您應按照此處另一個SO問題中的說明將文件用作資源

用Java加載資源的首選方式

或者,您可以使用文件的絕對或相對路徑。

將文件放在與執行程序相同的目錄中,文件名可以簡單地

String wavFile1 = "wav1.wav";

您可以使用相對路徑

private String filename = "./src/examples/wav1.wav";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM