45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:Java中的路径及Resource介绍

Java中的路径及Resource介绍

2016-09-03 07:04:55 来源:www.45fan.com 【

Java中的路径及Resource介绍

一直对Java的路径感觉模糊,用起来稀里糊涂。所知道的就是,如果使用相对路径类似于"myfile.txt"或者"res/image1.gif"的话,是在根路径下进行搜索的。
而根路径到底是什么?感觉上似乎是包含了入口点(例如main函数)的类所在的路径。所知仅限于此。
今天碰到一个问题,我的程序A需要从它的某个子路径读取一个文件,而我所编写的TestCase在运行时“根路径”就是TestProject的路径,这样一来,怎么也不能保证读取到正确的文件(由于某些原因,这些文件是静态指定的,而不是运行时动态传入的)。

在网上四处乱撞,两眼一抹黑。试着打包成jar,也没用(笨蛋,当然没用)。最后还是在亲爱的《CoreJavaVolumeI》中找到了答案。摘抄原文如下:
Theresourcemechanismgivesyouthesameconvenienceforfilesthataren''tclassfiles.Herearethenecessarysteps:
GettheClassobjectoftheclassthathasaresource,forexample,AboutPanel.class.
CallgetResource(filename)togettheresourcelocationasaURL.
Iftheresourceisanimageoraudiofile,readitdirectlywiththegetImageorgetAudioClipmethod.
Otherwise,usetheopenStreammethodontheURLtoreadinthedatainthefile.(SeeChapter12formoreonstreams.)
Thepointisthattheclassloaderremembershowtolocatetheclass,andthenitcansearchfortheassociatedresourceinthesamelocation.
Forexample,tomakeaniconwiththeimagefileabout.gif,dothefollowing:

URLurl=AboutPanel.class.getResource("about.gif");
ImageIconicon=newImageIcon(url);
Thatmeans"locatetheabout.giffileatthesameplacewhereyoufindAboutPanel.class."

所以说基础一定要打好,决定还是从第一章开始老老实实啃CoreJava吧。

 

本文地址:http://www.45fan.com/a/question/71570.html
Tags: 中的 路径 Java
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部