gpt4 book ai didi

Java 读取外部资源的方法详解及实例代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java 读取外部资源的方法详解及实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Java 读取外部资源的方法详解 。

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

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

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

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

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

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

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

4,从URL中读取

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

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

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

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

最后此篇关于Java 读取外部资源的方法详解及实例代码的文章就讲到这里了,如果你想了解更多关于Java 读取外部资源的方法详解及实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com