Maven项目获取资源文件路径并读取资源文件内容

简介: Maven项目获取资源文件路径并读取资源文件内容

使用IDEA新建一个Maven项目

项目.png

项目结构如下

项目结构如下.png

项目主要结构

demo/
  src/
      main/
          java/
          resources/   # 资源路径
  target/
      classes/         # 编译后文件

resources文件夹下的文件在编译后,都放在了根目录classes之下

一、获取项目路径

package com.demo;
import java.net.URL;
public class App {
    public static void main(String[] args) {
        //项目根路径
        URL url1 = App.class.getClassLoader().getResource("");
        System.out.println(url1.getPath());
        // 项目根路径
        URL url2 = App.class.getResource("/");
        System.out.println(url2.getPath());
        // 文件根路径
        URL url3 = App.class.getResource("");
        System.out.println(url3.getPath());
    }
}

输出结果(省略/demo前的路径,只看后面的路径)

/demo/target/classes/
/demo/target/classes/
/demo/target/classes/com/demo/

二、读取文件

/demo/src/main/resources/name.txt

Tom
Jack
Jobs

读取文件内容

package com.demo;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
public class App {
    public static void main(String[] args) throws IOException {
        URL url = App.class.getResource("/name.txt");
        String filename = url.getPath();
        System.out.println(filename);
        // /demo/target/classes/name.txt
        BufferedReader reader = new BufferedReader(new FileReader(filename));
        String  line ;
        while ((line = reader.readLine())!= null){
            System.out.println(line);
        }
        reader.close();
    }
}

输出结果

Tom
Jack
Jobs

参考

Maven获取resources的文件路径、读取resources的文件

相关文章
|
传感器 机器学习/深度学习 编解码
图像配准:基于 OpenCV 的高效实现
在这篇文章中,我将对图像配准进行一个简单概述,展示一个最小的 OpenCV 实现,并展示一个可以使配准过程更加高效的简单技巧。
|
数据采集 存储 搜索推荐
用 Python 将 html 转为 pdf、word
在日常中有时需将 html 文件转换为 pdf、word 文件。网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了。
1854 0
用 Python 将 html 转为 pdf、word
|
计算机视觉 Python
图像增强、锐化,利用 Python-OpenCV 来实现 4 种方法!
图像增强目的使得模糊图片变得更加清晰、图片模糊的原因是因为像素灰度差值变化不大,图片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不清晰的感觉 解决这个问题的最直接简单办法,放大像素灰度值差值、使图像中的细节更加清晰。
图像增强、锐化,利用 Python-OpenCV 来实现 4 种方法!
|
存储 人工智能 Serverless
阿里云《AI 剧本生成与动画创作》技术解决方案测评
本问是对《AI 剧本生成与动画创作》的用心体验。结论不是特别理想,在实际使用中仍存在一些问题。
628 22
|
8月前
|
Java 数据挖掘 调度
Java 多线程创建零基础入门新手指南:从零开始全面学习多线程创建方法
本文从零基础角度出发,深入浅出地讲解Java多线程的创建方式。内容涵盖继承`Thread`类、实现`Runnable`接口、使用`Callable`和`Future`接口以及线程池的创建与管理等核心知识点。通过代码示例与应用场景分析,帮助读者理解每种方式的特点及适用场景,理论结合实践,轻松掌握Java多线程编程 essentials。
604 5
|
存储 算法 安全
Python 加密算法详解与应用
Python 加密算法详解与应用
647 1
|
Java 数据库连接 mybatis
MapStruct-Java实体转换利器
本文介绍了MapStruct这一Java实体转换工具,通过定义mapper接口和使用注解,自动生成实现类以简化不同Java对象之间的转换过程,并提供了一个简单的使用示例,包括定义DTO、Entity类和映射接口,以及在Service层中的使用方式。
MapStruct-Java实体转换利器
|
JSON API 网络架构
Django 后端架构开发:DRF 高可用API设计与核心源码剖析
Django 后端架构开发:DRF 高可用API设计与核心源码剖析
634 2
|
机器学习/深度学习 传感器 物联网
使用Python实现深度学习模型:智能物联网与智能家居
【8月更文挑战第13天】 使用Python实现深度学习模型:智能物联网与智能家居
496 2
|
存储 关系型数据库 MySQL
MySQL数据库进阶实战:解锁性能飙升秘籍,从菜鸟到高手的华丽蜕变,让数据操作如行云流水!
【8月更文挑战第5天】MySQL是最流行的开源关系型数据库之一,在Web开发与数据分析等领域广泛应用。本文通过实战代码示例,深入探讨MySQL进阶技能:包括索引优化以提升查询性能;利用JOIN与子查询处理多表关联数据;通过事务处理确保数据一致性;使用存储过程与函数封装复杂逻辑以便重用;设置触发器自动执行特定任务以维护数据完整性。掌握这些技能能显著提高数据处理效率与系统性能。
431 5