2009-04-22 29 views
11

なぜ機能がjava.io.File.toURL()は推奨されていませんか? URLオブジェクトを受け入れるToolkit.createImage()へのURLを渡す必要があります。 Javadocは私にFile.toURI().toURL()を使うことを勧めます。しかし:File.toURL()は推奨されていませんか?

C:\Documents and settings\Administrator\...

は次のようになります。

C:\Documents%20and%20settings\Administrator\...

明らかに無効なファイルの場所です。私はFile.toURL()がエスケープせずにURLを作成することを発見しましたが、非推奨です。それは動作しますが、私は非難された関数を使用するのが怖いです。同じことをしても非難されない方法は何ですか?

EDITは:今の私のコードは次のようになります。

spriteImage1 = tkit.createImage(new File("./images/sprite1.png").getCanonicalFile().toURL()); 

編集:私は私の.jarファイルの外のフォルダから画像を作成する必要があります。私は相対的な場所( "/images/sprite1.png")が必要です。 createImage(String)メソッドは、相対パスを与えるときに例外をスローします。

+1

エスケープされたバージョンが間違っていると思うのは、まったくわかりません。確かに私はおそらく%20の代わりに+を期待していましたが、それでも動作することを願っています。 –

+4

2番目のファイルではありません:/// C:/ Documents%20and%20settings/Administrator/...? – Powerlord

+0

実際には2番目のバージョンでは、最初のものがうまく動作している間にcreateImage()に渡すと例外が発生します。そしてそれはファイルです:/// ... – Lucky

答えて

14

this bugのように特殊文字は正しく処理されません。

5

代わりにtakes a Stringというファイル名の代わりにcreateImageという機能を使用するのはなぜですか?

27

使用: URL url2 = file.toURI()。toURL();

+1

スペースはURLエンコードされているため、同じではありません。 – user2340939

0

は、私はあなたが

CこのようにURLを書かなければならないと思う:/ドキュメントと設定/管理/ ...この

Cで

ない

: \ Documents and settings \ Administrator ...

3

私は、この質問へのT答えは、このリンク上記のリンクで公開したようhttp://www.jguru.com/faq/view.jsp?EID=1280051

にさらさ一つであり、これを行うための正しい方法は次のとおりです。でMalformedURLExceptionのためのキャッチはありません

// Supposing f is the referenced file in code and we want to 
// get an URL instance without deprecation warnings. 
URL externalForm = f.toURI().toURL(); 

質問を約あるとしてメソッドfile.toURL()の非推奨

これが役に立ちます。

関連する問題