JAVA读取外部资源的方法

转载 2013年12月04日 19:09:24

转:

在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下.

1.从当前的工作目录中读取:

  1. try
  2.             BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("wkdir.txt"))); 
  3.             String str; 
  4.             while ((str = in.readLine()) !=null) { 
  5.                 System.out.println(str); 
  6.             } 
  7.             in.close(); 
  8.         } catch (IOException e) { 
  9.         } 

2,从classpath中读取(读取找到的第一个符合名称的文件):

  1. try
  2.             InputStream stream = ClassLoader.getSystemResourceAsStream("fileinjar.txt"); 
  3.             BufferedReader in = new BufferedReader(new InputStreamReader(stream)); 
  4.             String str; 
  5.             while ((str = in.readLine()) !=null) { 
  6.                 System.out.println(str); 
  7.             } 
  8.             in.close(); 
  9.         } catch (IOException e) { 
  10.         } 

3,从classpath中读取(读取找到的所有符合名称的文件,如Spring中带有classpath*:前缀的情况就会从classpath中遍历):

  1. try
  2.  
  3.             Enumeration resourceUrls = Thread.currentThread().getContextClassLoader().getResources("fileinjar.txt"); 
  4.  
  5.             while (resourceUrls.hasMoreElements()) { 
  6.                 URL url = (URL) resourceUrls.nextElement(); 
  7.                 System.out.println(url); 
  8.  
  9.                 BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
  10.                 String str; 
  11.                 while ((str = in.readLine()) !=null) { 
  12.                     System.out.println(str); 
  13.                 } 
  14.                 in.close(); 
  15.  
  16.             } 
  17.  
  18.         } catch (IOException e) { 
  19.         } 

4,从URL中读取:

  1. try
  2.  
  3.             URL url = new URL("http://blog.csdn.net/kkdelta"); 
  4.             System.out.println(url); 
  5.  
  6.             BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
  7.             String str; 
  8.             while ((str = in.readLine()) !=null) { 
  9.                 System.out.println(str); 
  10.             } 
  11.             in.close(); 
  12.  
  13.         } catch (IOException e) { 
  14.             e.printStackTrace(); 
  15.         } 

5,web项目从web-inf文件夹读取(通过得到ServletContext读取,可以在servlet或者能够得到request的类中使用):

  1. try
  2.  
  3.             URL url = (URL) getServletContext().getResource("/WEB-INF/webinffile.txt"); 
  4.             // URL url = (URL)req.getSession().getServletContext().getResource("/WEB-INF/webinffile.txt"); 
  5.             System.out.println(url); 
  6.  
  7.             BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
  8.             String str; 
  9.             while ((str = in.readLine()) !=null) { 
  10.                 System.out.println(str); 
  11.             } 
  12.             in.close(); 
  13.  
  14.         } catch (IOException e) { 
  15.             e.printStackTrace(); 
  16.         } 

以上代码在eclipse环境中运行测试过.不过最近在用JUnit的时候,通过ant运行JUnit时通过ClassLoader.getSystemResourceAsStream("file.txt");的方式去找不到文件.改成 Xclass.class.getClassLoader().getResourceAsStream("file.txt");能从ant指定的classpath中找到文件.原因是ClassLoader和Xclass.class.getClassLoader()是不同的,查找的路径不一样.

Java动态类加载器(加载外部jar包类 读取资源文件)

Code: package xx.xx.xx import java.io.IOException; import java.io.InputStream; import java.u...
  • d_good
  • d_good
  • 2017-01-16 09:20:02
  • 1044

Java读取外部资源的方法

在Java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取: [java...
  • u013214151
  • u013214151
  • 2017-03-01 20:54:48
  • 83

hive的UDF开发,读取外部资源

先说说需求吧。 hive中存了银行的很多历史数据。这些历史数据是不可能做更新的。随着时间迁移呢,银行的部门机构可能发生变。那么在银行机构发生变化时,想要统计某个变化机构的一些kpi(指标)。此时我们...
  • hkl_hkl
  • hkl_hkl
  • 2016-08-11 09:44:30
  • 1655

Flash储存外部TXT文本和读取的方法

  • 2011年11月14日 09:13
  • 201KB
  • 下载

JAVA ResourceBundle 加载外部路径资源文件方式

ResourceBundle读取的文件是在classpath路径下,也就是src或者src目录下,而我们在项目中需要打包,打包后的properties文件在jar中,修改很不方便,我们需要把prope...
  • u010143767
  • u010143767
  • 2016-07-20 14:09:54
  • 4603

java 中获取资源相关方法

5.1 获取真实路径(*****) 还可以使用ServletContext对象来获取Web应用下的资源,例如在hello应用的根目录下创建a.txt文件,现在想在Servlet中获取这个资源,就可以...
  • qq_26676207
  • qq_26676207
  • 2016-09-20 17:16:58
  • 300

Unity对于移动平台动态读取外部文件

第一篇博客,有点小激动,下决心写博客的目的就是为了锻炼自己,多一点积累,少走一点弯路!有不对的地方,欢迎拍砖!闲话不多扯,Let's Go!前言:       我一直认为,带着问题去思考,才能更好地解...
  • WandDouDou
  • WandDouDou
  • 2016-12-02 15:17:29
  • 688

spark加载外部资源方式

首选说明spark加载文件: 1、采用 Source. fromFile (LocalPath)方式加载,可加载本地文件,这里本地文件指的是非集群方式 2、加载hdfs,sc.textfile() ...
  • lvdan1
  • lvdan1
  • 2017-11-02 18:39:37
  • 483

Java获取资源路径的方法与区别

◆一般情况下,我们都使用相对路径来获取资源,这样的灵活性比较大.   通过当前类文件的路径获取资源主要有如下几种方式:   · 假设当前类为com.ketqi.Test   · 包所...
  • name_liweibin
  • name_liweibin
  • 2014-02-18 10:54:04
  • 1980

读取jar包外部文件

想要读取jar包内部文件,请看http://blog.csdn.net/vincent2610/article/details/24638287
  • vincent2610
  • vincent2610
  • 2014-05-09 12:26:26
  • 829
收藏助手
不良信息举报
您举报文章:JAVA读取外部资源的方法
举报原因:
原因补充:

(最多只允许输入30个字)