2012-10-26 67 views
0

我一直在嘗試使用Java編寫音頻CD開膛手,以便了解它們是如何工作的。我似乎無法弄清楚如何實際讀取CD驅動器中的歌曲。我已經設法打開.cda文件,但除非我可以訪問CD上的扇區,否則不是非常有用。我嘗試使用下面的代碼打開D:驅動器(這是我的計算機上的CD驅動器),但它提供了文件未找到錯誤。我猜這是因爲CD驅動器不是文件。有沒有其他類型的輸入流或者我可以從CD驅動器讀取不同的方式。我一直在尋找很長一段時間,沒有任何我能找到的幫助。如何在Windows上使用Java讀取CD驅動器

public class learning 
{ 
    public static void main(String[] args) throws IOException 
    { 
     FileInputStream input = new FileInputStream("D:\\"); 
    } 
} 

特定的錯誤信息是:

Exception in thread "main" java.io.FileNotFoundException: D:\ (The system cannot find the path specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at learning.main(learning.java:5) 

乾杯丹尼爾

+1

,在Linux上這只是直截了當我懷疑音頻CD在文件系統中是否可用。 – 2012-10-26 08:57:47

+0

對不起,我不明白你的意思 –

+1

'FIleInputStream'從文件系統讀取。音頻CD不包含文件。 – 2012-10-26 09:01:17

回答

0

有這個操作系統項目:Ripper

神奇的是在GrabEncodePanel.java,在getCDDADir()getCDDAStream()功能(恐怕張貼的實際來源,然後我不得不發佈許可證太...)

編輯我今天也學到了一些東西:根據this FAQ

+0

當我試圖使用「URL url = new URL(」cdda:/ dev/cdrom「);」被稱爲「未知的協議:cdda」 –

+0

@DanielBraithwaite我編輯了我的答案,似乎這種方法只適用於Linux ... – ppeterka

+0

好吧,它在任何操作系統上都是一樣的:獲取實際設備的句柄並讀取它。只有Unix喜歡那些在可訪問的文件系統中,而例如Windows具有更高級別的層次結構,通常不可用於Java等抽象。 – Joey

相關問題