【Web作业开发记录】Java代码读取文件问题

1.问题分析

在项目中需要读取properties文件,而对于gradle项目,在java文件夹底下的properties文件在编译打包时会自动忽略,最终造成NPE。

2.解决方法

对于gradle项目,与java文件夹有一个同级的文件夹resources,里面的文件在编译打包时不会忽略。通过DBUtil的Class类的getResourceAsStream方法获得访问InputStream,即DBUtil.class.getResourceAsStream(“/properties/account.properties”)再通过Properties类的load方法加载该输入流,通过Properties类的getProperty获得数据。

3. 示例代码

try {Class.forName(DRIVER_CLASS);Properties properties = new Properties();properties.load(DBUtil.class.getResourceAsStream("/properties/account.properties"));URL = properties.getProperty("url");USERNAME = properties.getProperty("username");PASSWORD = properties.getProperty("password");} catch (ClassNotFoundException | IOException | NullPointerException e) {e.printStackTrace();System.out.println("Error");System.exit(1);}

项目路径图

4. 问题反思

该问题涉及到java代码读取文件的路径问题,现在对Class Loader并不理解。在getResourceAsStream方法的文档中提到,The rules for searching resources associated with a given class are implemented by the defining class loader of the class. 这句话的具体含义无法理解。网上也有提到,形如DBUtil.class.getResourceAsStream()和DBUtil.class.getClassLoader().getResourceAsStream()在使用的时候存在区别。从源码角度看,前者是通过调用后者完成的,但前者在调用前进行了参数的处理。若以”/”开头,则去掉了该”/”,若不是以”/”开头,则认为该name是通过”.”进行分割,并进行了部分处理。
该部分有待进一步学习。

2021-02-08【Web作业开发记录】Java代码读取文件问题相关推荐

  1. WEB编程开发常用的代码[转]

    转自:http://blog.csdn.net/goaler/archive/2005/01/13/251090.aspx 1. ASP与Access数据库连接: dim conn,mdbfile  ...

  2. 转WEB编程开发常用的代码

     WEB编程开发常用的代码 http://blog.csdn.net/goaler/archive/2005/01/13/251090.aspx 1. ASP与Access数据库连接: dim con ...

  3. 记录一下 Java 代码实现文件夹、文件的对比,主要包含 word、pdf、文本、图片等相关文件的对比计算,以及计算文本的相似率(重复率)、筛选出差异的文件、方便文件和文档的去重,并封装为jar包

    记录一下 Java 代码实现文件夹.文件的对比,主要包含 word.pdf.文本.图片等相关文件的对比计算,以及计算文本的相似率(重复率).筛选出差异的文件.方便文件和文档的去重,并把所有的源码封装为 ...

  4. java ftp读取文件内容_java读取ftp中TXT文件的案例

    最近在开发关于java读取ftp中TXT文件,其中有些坑踩了一下,再次做个记录 1.读取文件时我会根据文件名称去生成数据库表,oracle数据库对于表名的长度是有限制的,最多30个字符 2.对于多个文 ...

  5. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  6. java scanner 读取文件_Java读取文本文件

    有很多方法可以在java中读取文本文件.下面我们来逐个看看java中读取文本文件的几个方法. 在java中有很多读取文本文件的方法.文本文件由字符组成,因此可以使用Reader类.在java中读取文本 ...

  7. java代码删除文件__发现无法删除

    java代码删除文件__发现无法删除 File file = new File(filePath);if (file.exists() && file.isFile()) {boole ...

  8. 怎么读取java文件,Java怎么读取文件

    当前位置:我的异常网» J2SE » Java怎么读取文件 Java怎么读取文件 www.myexceptions.net  网友分享于:2013-12-20  浏览:60次 Java如何读取文件? ...

  9. java中读取文件的方法

    总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...

最新文章

  1. 软工作业3:词频统计
  2. linux刻录光盘空间不足,linux下刻录光盘所发生的问题及解决办法
  3. python接口自动化测试框架unittest代码_Python+unittest+requests 接口自动化测试框架搭建教程...
  4. H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
  5. 首都富版本更新说明文档
  6. 索尼机器狗Aibo将在美国开售,智能撒娇是最甜的 |每只性格都不同
  7. 【愣锤笔记】基于vue的进阶散点干货
  8. [洛谷P1082]同余方程
  9. 云服务器怎么增加d盘_怎么租用美国云服务器比较便宜?
  10. 使用批处理文件,自动设置计算机IP地址
  11. Excel 2016 对数据做线性回归分析步骤
  12. Mathpix Snip--图片中识别公式
  13. 使用DevIL来加载OpenGL纹理
  14. 一阶线性齐次,非齐次方程的通解和解的结构定理,推导过程。
  15. HTV-VIVE 连接 PC端 720云
  16. 兆声波对硅片湿法清洗槽中水和气泡运动的影响
  17. 220514西南科技正式赛补题
  18. 中国教育大数据研究院在福州成立 倪光南任联席院长
  19. 人工智能算法需要运用计算机吗,什么是人工智能算法.ppt
  20. Katalon Recorder的简介及使用

热门文章

  1. 抽象类和接口-形状抽象类
  2. 人工智能、机器学习、深度学习学习资料整理(开发必备)
  3. labview操作者框架+ADS+twincat2(twincat3) st语言ethercat总线控制工程项目资料
  4. 网站更换完服务器多久生效,域名DNS切换后多久生效?
  5. 牛客 -- 小M和天平(简单dp)
  6. STM32超低功耗进阶之RTC
  7. 基于glut的OpenGL框架(一)
  8. 强烈推荐|websocket 全双工通信协议详解
  9. Github开源社区的验证码
  10. 今日谈:BoltDB数据库,一款纯Go实现的KV数据库