[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 メーリングリストの案内