[Seasar-user:18240] Re: org.seasar.framework.util.URLUtil.toFile(URL)メソッドの実装に関する質問

Toshiaki Takashima [E-MAIL ADDRESS DELETED]
2009年 8月 10日 (月) 17:16:23 JST


高島です。


 自己レスです。すみません、本メールの後半部につきまして、
あまりにも中途半端なソース理解の上に立っての質問になって
しまったので、破棄させてください。

>     final String path = URLDecoder.decode(fileUrl.getPath(), "UTF-8"); --- (1)

ロジック内の、上記エンコーディング指定部分についてのみご教示
をお願いできませんでしょうか?



以上よろしくお願いします。


> 高島と申します。
> 
> 
> Seasarのソースを読んで勉強しているのですが、掲題のメソッドの実装について
> ご教授をお願いしたい点がございます。以下、実装部分です。
> 
> public static File toFile(final URL fileUrl) {
>   try {
>     final String path = URLDecoder.decode(fileUrl.getPath(), "UTF-8"); --- (1)
>     return new File(path).getAbsoluteFile(); --- (2)
>   } catch (final Exception e) {
>     throw new SRuntimeException("ESSR0091", new Object[] { fileUrl }, e);
>   }
> }
> 
> 私の理解では、引数となるURLインスタンスには、ClassLoader.findResourceの
> 戻り値が指定されているようでした。
> 
> ここで、(1)にてURLからパス部分を取得しているわけですが、エンコーディング
> を"UTF-8"固定で取得しているところが、まず理解できませんでした。色々と
> 調べてみたのですが、ClassLoader.findResourceの戻り値であるURL
> インスタンスのgetPath値が、UTF-8でエンコーディングされている、という
> 情報を得ることができなかったからです(もちろんこちらのメソッドは
> 正常動作していることを確認しおります)。
> 
> また、returnしているFileインスタンスですが、getAbsoluteFile()している
> ところが理解できませんでした。そのままnew File(path)で良いのではないか
> と疑問に思いました。
> 
> 私の考えでは、toFileメソッドの実装は以下のようにすれば良いのではないか
> と思うのですが。
> 
> public static File toFile(final URL fileUrl) {
>   try {
>     return new File(fileUrl.toURI());
>   } catch (final Exception e) {
>     throw new SRuntimeException("ESSR0091", new Object[] { fileUrl }, e);
>   }
> }
> 
> 
> Seasarのメーリングリストにて、このような内部実装に関する質問をするのは
> お門違いかもしれませんが、どなたか参考情報などをご教示頂けるとありがたい
> です。
> 
> 
> 
> 以上よろしくお願いします。
> 
> 
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user


---------------------------------------------------------


高島俊昭
mailto:[E-MAIL ADDRESS DELETED]





---------------------------------------------------------




Seasar-user メーリングリストの案内