码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java 多种获取项目路径下的文件


    目标文件放在项目的resources文件夹下 的 mytxt文件里面,文件名叫 file Test.txt:

    其实可以看到,项目运行后,这个文件被丢到了target文件夹下:


    拿到这个文件的 InputStream :

    比如我们在FileUtil里面写个获取文件流的方法,

    public class FileUtil {
        

    }

     

    ① getResourceAsStream

     String filePath = "/mytxt/fileTest.txt";
     InputStream inputStream = FileUtil.class.getResourceAsStream(filePath);

     

    ②  getResource + getPath

    String filePath = "/mytxt/fileTest.txt";
    String path = FileUtil.class.getResource(filePath).getPath();
    InputStream fileInputStream = new FileInputStream(path);

     

    ③ getClassLoader().getResourceAsStream   (注意了,这种方式文件路径path初始不带 / 杠)

    String filePath = "mytxt/fileTest.txt";
    InputStream inputStream = FileUtil.class.getClassLoader().

    getResourceAsStream(filePath);

     

    ④ Thread.currentThread().getContextClassLoader().getResource (注意了,这种方式文件路径path初始不带 / 杠)

    String filePath = "mytxt/fileTest.txt";       
    String path = Thread.currentThread().getContextClassLoader().

    getResource(filePath ).getPath();
            InputStream fileInputStream = new FileInputStream(path);

    ⑤ System.getProperty 先拿项目根路径,再拼接target/classes 以及 文件路径

    String filePath = "/mytxt/fileTest.txt";
    String relativelyPath = System.getProperty("user.dir");

    InputStream fileInputStream = new FileInputStream(relativelyPath + "/target/classes/" + filePath);

     

    ⑥ Paths.get("").toAbsolutePath() 先拿项目根路径,再拼接target/classes 以及 文件路径

    String filePath = "/mytxt/fileTest.txt"; 
    Path path = Paths.get("").toAbsolutePath();      
    InputStream fileInputStream = new FileInputStream(path + "/target/classes/" + filePath);

    拿到InputStream ,该干嘛干嘛,好了,该篇就到这。

  • 相关阅读:
    农牧行业全产业链20+业务用契约锁电子签,释放成本、提效90%
    智能SQL生成:后端技术与LLM的完美结合
    Vue之路由跳转,query传参,子路由,路由模式--hash&history,VueRouter router route三者区别区别
    java计算机毕业设计游戏账号交易源程序+mysql+系统+lw文档+远程调试
    Linux下安装MySQL你又踩过多少坑【宇宙最全教程】
    babel6使用ES2020最新js语法
    【Royalty in Wind 2.0.0】个人体测计算、资料分享小程序
    Python---练习:有一物,不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?
    EBI、DDD及其演变架构史
    开发中的常见安全威胁问题与应对策略
  • 原文地址:https://blog.csdn.net/qq_35387940/article/details/132901162
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号