<强> Java读取外部资源的方法详解强>
在Java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在类路径下或者在网络项目中放在- inf下。
1。从当前的工作目录中读取:
尝试{ BufferedReader=新BufferedReader(新InputStreamReader(新FileInputStream (“wkdir.txt”))); 字符串str; 在((str=in.readLine ()) !=null) { System.out.println (str); } in.close (); }捕捉(IOException e) { } >之前2,从类路径中读取(读取找到的第一个符合名称的文件):
尝试{ InputStream流=ClassLoader.getSystemResourceAsStream (“fileinjar.txt”); BufferedReader=新BufferedReader(新InputStreamReader(流)); 字符串str; 在((str=in.readLine ()) !=null) { System.out.println (str); } in.close (); }捕捉(IOException e) { } >之前3,从类路径中读取(读取找到的所有符合名称的文件,如春天中带有classpath *:前缀的情况就会从类路径中遍历):
尝试{ 枚举resourceUrls=Thread.currentThread () .getContextClassLoader () .getResources (“fileinjar.txt”); 而(resourceUrls.hasMoreElements ()) { 网址URL=(URL) resourceUrls.nextElement (); System.out.println (url); BufferedReader=new BufferedReader(新InputStreamReader (url.openStream ())); 字符串str; 在((str=in.readLine ()) !=null) { System.out.println (str); } in.close (); } }捕捉(IOException e) { } >之前4,从URL中读取:
尝试{ 网址URL=new URL (“http://blog.csdn.net/kkdelta”); System.out.println (url); BufferedReader=new BufferedReader(新InputStreamReader (url.openStream ())); 字符串str; 在((str=in.readLine ()) !=null) { System.out.println (str); } in.close (); }捕捉(IOException e) { e.printStackTrace (); } >之前5、web项目从web - inf文件夹读取(通过得到ServletContext读取,可以在servlet或者能够得到请求的类中使用):
尝试{ 网址URL=(URL) getServletContext () .getResource (“/web - inf/webinffile.txt”);//网址URL=(URL) req.getSession () .getServletContext () .getResource (“/web - inf/webinffile.txt”); System.out.println (url); BufferedReader=new BufferedReader(新InputStreamReader (url.openStream ())); 字符串str; 在((str=in.readLine ()) !=null) { System.out.println (str); } in.close (); }捕捉(IOException e) { e.printStackTrace (); } >之前,以上代码在eclipse环境中运行测试过。不过最近在用JUnit的时候,通过蚂蚁运行JUnit时通过的方式去找不到文件。改成;能从ant指定的类路径中找到文件。原因是是不同的,查找的路径不一样。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
Java读取外部资源的方法详解及实例代码