有沒有人有一個想法,爲什麼這個轉換並不好:爲什麼我不能用這個URI創建一個File實例?
URI myUri = URI.create("http://storage.googleapis.com/autoplay_audio/titanium.mp3");
File f = new File(myUri);
有沒有人有一個想法,爲什麼這個轉換並不好:爲什麼我不能用這個URI創建一個File實例?
URI myUri = URI.create("http://storage.googleapis.com/autoplay_audio/titanium.mp3");
File f = new File(myUri);
不能使用超過一個文件URI以外的任何其他(如file://
)。
構造File(URI)
具有以下條件檢查:
String scheme = uri.getScheme();
if ((scheme == null) || !scheme.equalsIgnoreCase("file"))
throw new IllegalArgumentException("URI scheme is not \"file\"");
如果您打算連接到http
URI,你需要使用一些其他的機制,例如URL。
您只能將文件用於文件。對於你的例子來說,File需要知道HTTP協議。根據您的需要和環境,您應該使用Apache HttpClient或其他框架。
我這樣做的原因是因爲我想獲取音頻的持續時間,並且我找到了一個以Java文件格式返回音頻文件持續時間的函數。 你如何建議我做得最好? – davidmoshko
您可以下載該文件與HttpClient爲例,如[這裏描述](http://stackoverflow.com/questions/10960409/how-do-i-save-a-file-downloaded-with-httpclient-into-a特異性-文件夾)。然後您可以將該文件傳遞給需要它的庫。 –
該文件位於Google App Engine服務器中。沒有下載文件沒有辦法獲得文件持續時間? – davidmoshko
你得到什麼錯誤? – phuzi
供參考:你在做什麼不是鑄造。你正在創建一個'URI'實例,然後將它傳遞給'File.'的構造函數。Casting看起來像'File f =(File)myUri;'這將不起作用。 – MadConan