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

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

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中读取(读取找到的第一个符合名称的文件):

try{

InputStream stream= ClassLoader.getSystemResourceAsStream("fileinjar.txt");

BufferedReader in= new BufferedReader(newInputStreamReader(stream));

String str;while ((str = in.readLine()) != null) {

System.out.println(str);

}

in.close();

}catch (IOException e) {}

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

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(newInputStreamReader(url.openStream()));

String str;while ((str = in.readLine()) != null) {

System.out.println(str);

}

in.close();

}

}catch (IOException e) {}

4.从URL中读取:

try{

URL url= new URL("http://blog.csdn.net/kkdelta");

System.out.println(url);

BufferedReader in= new BufferedReader(newInputStreamReader(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的类中使用):

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(newInputStreamReader(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中找到文件.

java读取外部文件_(转)JAVA读取外部资源的方法相关推荐

  1. java 流 复制文件_【Java】使用字节流复制文件

    其实用java程序复制文件并不难 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...

  2. java 读取webapp文件_在Java Webapp和Java Normal应用中读取公共外部属性文件

    但是,我们有以下一些特殊要求, Webapp将部署到tomcat. 格式为.jar的普通Java应用程序将放在/ myapp文件夹下 myappConfig.property文件将放置在/ myapp ...

  3. java poi 读取xlsx文件_使用POI读取xlsx文件(SXSSFWorkbook)

    我正在尝试使用POI来读取大型xlsx文件的第一次测试,但要使用小文件进行简单测试,我无法显示单元格的值.使用POI读取xlsx文件(SXSSFWorkbook) 有人可以告诉我什么是我的错误.所有的 ...

  4. java读取csv文件_使用扫描仪读取Java中的CSV文件

    java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...

  5. java jdom 读取xml文件_使用Jdom读取XML文件方法

    使用Jdom读取XML文件方法,学习Spring时,我们经常看到很多xml配置文件,Spring通过在配置文件中的配置,使用IOC(控制反转),从而实现代码的灵活性,本篇我就为大家介绍一种解析xml方 ...

  6. java 读取ppt文件_解析Java的InputStream类并借助其读取ppt文件

    1. 关于InputStream.read()     在从数据流里读取数据时,为图简单,经常用InputStream.read()方法.这个方法是从流里每次只读取读取一个字节,效率会非常低.     ...

  7. java写入word文件_使用JAVA写入word文件

    我读了一个word文档,想用 Java写入另一个word文件.我希望将读取文档中的内容的样式(字体,粗体,斜体,标题等)写入,因为它是创建的新文档. 我能够复制内容而不是格式样式. import ja ...

  8. java 导出mdb文件_使用Java创建Access数据库文件(.mdb或.accdb)

    Jackcess 2.x的更新:现在使用DatabaseBuilder创建(或打开)数据库,因此要创建一个新的数据库文件,我们这样做 import java.io.File; import java. ...

  9. netcore读取json文件_.net core读取json格式的配置文件

    在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用j ...

  10. 怎么用python读取大文件_使用Python读取大文件的方法

    背景准备试一试:f =开放(\u201C\/道路\/ \/文件\u201D,\u201Cr\u201D)打印()最后:如果f:()调用读()将读取所有文件的内容,如果文件有10 g,记忆会破灭,所以, ...

最新文章

  1. 无线信号功率计算公式(自由空间模型,地面反射模型)
  2. Z-Stack - Modification of Zigbee Device Object for better network access management
  3. 源码网站都有哪些_一个网站都包括哪些费用?
  4. 用科幻艺术描绘未知的魅力-人物篇
  5. nodejs安装到d盘怎么使用npm_NodeJS、NPM安装配置步骤
  6. 如期而至,GCC 4.9.0正式版发布!
  7. JT/T808校验码计算(按字节异或求和)
  8. ROS2——通信接口(十)
  9. 中级软件评测师下午题总结
  10. 一文详解企业数据分类分级的推进路径
  11. CortexM3/M4(3)-指令集
  12. 前端中的A、B、C端解释
  13. linux按目录名查找目录_如何在Linux中查找目录?
  14. 银行欺诈banking fraud
  15. java去掉date分时秒_java Date获取年月日时分秒的实现方法
  16. 金融科技的价值和风险
  17. 关于com.lowagie.text包的报错问题
  18. CSS实现背景模糊效果(高斯模糊)
  19. android 开启gps 简书,Android蓝牙第三方库FastBle使用注意事项(需开启GPS定位)
  20. 通过opencv (python) 获得mynteye小觅双目图像

热门文章

  1. 保护水资源公益网站html,保护水资源公益海报世界水日宣传海报
  2. 你能学会的UGNX数控编程平面轮廓铣教程
  3. OpenGL鼠标控制视角旋转
  4. 研究生二年级该怎么安排_教二年级学生编码是什么感觉
  5. Node-RED学习(一)
  6. 基于Java+MySQL实现(Web)在线题库管理系统【100010067】
  7. 不让IE浏览器打开后跳转到edge
  8. APP软件项目开发流程
  9. 2011年最新出炉的爆笑签名
  10. 2021年安全生产工作总结及2022年思路计划(二十八篇)PPTX(附下载)