java中怎样获取绝对路径,增加代码的灵活性?

2023-05-16

介绍获取绝对路径的方法,一种是获取普通文件,另一种是只能获取后缀名为.properties的文件

第一种:

在IO流读取文件时,我们往往会通过直接写文件名的方式取,

例如:

        FileReader reader=new FileReader("servlet06/src/classinfo.properties");

这种方式缺乏灵活性,如果文件位置发生改变,那么将不能读取到数据。

接下来说一种比较通用的路径,即使代码换了位置,这样编写仍然通用,注意:使用以下通用的前提是这个文件必须是在类路径下。

什么是类路径?

方法在src下的都是类路径,src是类路径的根

/**
* 解释:
* Thread.currentThread()当前线程对象
* getContextClassLoader()线程对象的方法,可以获取当前线程的类加载器对象
* getResource()【获取资源】这是类加载器对象的方法,当前线程的类加载器默认为从类的根路径下加载资源
*/

//获取文件的一个绝对路径
//String path=Thread.currentThread().getContextClassLoader().
//                       getResource("classinfo.properties").getPath();//获取绝对路径
//FileReader reader=new FileReader(path);
        
//直接以流的形式返回
InputStream reader=Thread.currentThread().getContextClassLoader().
                       getResourceAsStream("classinfo.properties");

Properties pro=new Properties();
pro.load(reader);
reader.close();
String className=pro.getProperty("className");
System.out.println(className);

第二种:

java.util包下提供了一个资源绑定器,便于获取属性配置文件中的内容使用以下这种方式的时候,属性配置文件xxx.properties必须放在类路径下使用,只能读取后缀名为.properties的文件

//在写路径的时候,路径后面的扩展名不能写
ResourceBundle bundle=ResourceBundle.getBundle("classinfo");
String className=bundle.getString("className");
System.out.println(className);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中怎样获取绝对路径,增加代码的灵活性? 的相关文章

  • TYUT太原理工大学2022操作系统学习通总结

    第1章 选择 xff08 高级程序设计语言的编译器 xff09 不是操作系统关心的主要问题多道批处理系统的主要缺点是 xff08 缺少交互性 xff09 在操作系统中 xff0c xff08 进程通信服务例行子程序 xff09 部分属于微内
  • mariaDB安装

    打开mariaDB官网 官网地址 xff1a https mariadb org 点击DownLoad后跳转到如下界面 在该界面下选择MariaDB Repositories xff0c 然后根据自己的需求选择mairadb要装在什么系统下
  • 2021-07-10

    标题SQL sever基础语法 语法简介 xff1a l Create database 数据库名 xff1b l Use database 数据库名 xff1b l SQL对字母大小写不敏感 xff1b l 文本或字符串用单引号 xff1
  • Linux的基本操作(1)

    Linux的基本操作 xff08 1 xff09 1 1登录方式 1 远程登录 Linux允许同一用户在不同的控制台上以相同的身份或不同身份多次登录 xff0c 同时进行多项工作 各控制台上的交互过程石相互独立的 Login 账号 cher
  • 快速记忆常用排序

    选泡插 xff0c 快归堆希桶计基 xff0c 恩方恩老恩一三 xff0c 对恩加k恩乘k xff0c 不稳稳稳不稳稳 xff0c 不稳不稳稳稳稳
  • ssh常用命令50条

    SSH xff08 Secure Shell xff09 是一种用于远程登录 数据传输和命令执行的安全协议 下面列举了 SSH 命令的一些常见用法 xff1a 连接到远程主机 xff1a ssh username 64 hostname 其
  • Kail虚拟机的安装教程

    本指南是关于在 VMware 内部虚拟化 Kali Linux xff0c 让您拥有 Kali VM 这是使用 Kali 的好方法 xff0c 因为它与主机完全分离 xff0c 允许您与其他虚拟机 xff08 以及主机和网络上的其他机器 x
  • JDBC Connection Reset问题分析

    2014年 7 月 13 日 半年前开始 xff0c 项目组测试MM 在验证功能时 xff0c 经常报怨讲测试环境上的应用在启动时很慢 xff0c 偶尔会报失败 xff0c 遇到类似问题多数情况下重新启动一次就可以启动成功 xff0c 但少
  • 安卓DataBinding出现ActivityMainBinding类不存在

    安卓中并不存在ActivityMainBinding这个类 xff0c 这个类是在XML布局的最外层加入 lt layout gt lt layout gt 就会自动生成 如果你的XML布局的名字叫做 34 activity main 34
  • Ubuntu18.04配置交叉编译器,解压安装以后无法查到编译器的版本号

    在进行嵌入式linux开发时 xff0c 有时需要安装特定交版本的交叉编译器 xff0c 这就需要我们手动安装 xff0c 在解压安装安好并且设置了路径 xff0c 我们会发现查不到编译器的版本号 xff0c 也就是仍然无法使用交叉编译器
  • MySQL万字精华总结!你连基础的JVM运行时内存布局都忘了?含面试题+答案

    前言 Netty 是一款基于 Java 的网络编程框架 xff0c 能为应用程序管理复杂的网络编程 多线程处理以及并发 Netty 隐藏了样板和底层代码 xff0c 让业务逻辑保持分离 xff0c 更加易于复用 使用 Netty 可以得到一
  • 获取Spring中@PathVariable注解里带点的完整参数

    x1f680 优质资源分享 x1f680 学习路线指引 xff08 点击解锁 xff09 知识定位人群定位 x1f9e1 Python实战微信订餐小程序 x1f9e1 进阶级本课程是python flask 43 微信小程序的完美结合 xf
  • 使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh

    x1f680 优质资源分享 x1f680 学习路线指引 xff08 点击解锁 xff09 知识定位人群定位 x1f9e1 Python实战微信订餐小程序 x1f9e1 进阶级本课程是python flask 43 微信小程序的完美结合 xf
  • 数据结构实验报告-01

    一 实验目的和要求 要求 1 按照群文件中的报告内容 xff0c 首先进行设计工作并加以文字记录 xff0c 然后编写代码 xff0c 测试 xff0c 分析 xff0c 再二次完善报告 xff0c 形成完整的文字记录 2 再次强调 xff
  • flutter面试题,覆盖所有面试知识点,面试必会

    为什么想跳槽 xff1f 简单说一下当时的状况 xff0c 我在这家公司做了两年多 xff0c 这两年多完成了一个大项目 xff0c 作为开发的核心主力 xff0c 开发压力很大 xff0c 特别是项目上线前的几个月是非常辛苦 xff0c
  • 删除docker容器中的文件,你还看不明白?

    原理讲解前 xff0c 先看一个最经典的业务场景 xff0c 如开发一个电商网站 xff0c 要实现支付订单的功能 xff0c 流程如下 xff1a 创建一个订单之后 xff0c 如果用户立刻支付了这个订单 xff0c 我们需要将订单状态更
  • 实战Compose——做个简洁却不简单的星球打卡App

    Focus Focus是一款帮助你集中的app 为自己的目标建立星球 xff0c 将时间投入在上面 花在星球上的每一分钟都会被记录 xff0c 每颗星球可以定制颜色与外观 为了贯彻简单干净不让人分心的设计理念 xff0c app采用白灰为主
  • android 截屏实现的几种方式

    Android 截屏分为四种 xff1a View 截屏 WebView 截屏 系统截屏 和 adb 截屏 1 View 截屏 View 截图是将当前 View 界面截取下来 xff0c 而对于屏幕上其他信息比如 xff1a 状态栏或其他应
  • iBatis使用log4j2输出日志

    原文链接这里 iBatis是一个老项目 xff0c 2 3 4 726版本发布之后 xff0c 项目改名为MyBatis xff0c 项目主页目前为http mybatis github io 我从08年开始接触iBatis xff0c 一
  • Android搭建无线调试环境

    ADB 安卓官网对此工具的介绍 Android 调试桥 adb 是一种功能多样的命令行工具 xff0c 可让您与设备进行通信 adb 命令可用于执行各种设备操作 xff08 例如安装和调试应用 xff09 xff0c 并提供对 Unix s

随机推荐

  • Golang:使用 FCM 实现推送通知

    firebase和设备令牌基本介绍 设备令牌是主要参赛者 xff0c 负责推送通知 这不是一个花哨的词 xff0c 它只是每个设备唯一的 id 当我们安装任何应用程序时 xff0c 我们设备的唯一令牌会存储在他们的服务器上 xff0c 他们
  • 适用于 Flutter 的 AWS Amplify

    关于Amplify Amplify 于 2017 年推出 xff0c 是面向移动和前端 Web 开发人员的端到端 AWS 解决方案 它是服务和工具的组合 xff0c 可以一起使用或单独使用 xff0c 以帮助移动和前端开发人员使用 AWS
  • Android Native 异常捕获库

    现状 发生native异常时 xff0c 安卓系统会将native异常信息输出到logcat中 xff0c 但是java层无法感知到native异常的发生 xff0c 进而无法获取这些异常信息并上报到业务的异常监控系统 业务部门可以快速实现
  • 从 ExoPlayer 源码分析视频无法播放问题

    What happened 最近负责的项目中碰到了在部分手机上无法播放视频的问题 xff0c 我们接入的是 ExoPlayer 三方库 xff0c 从 log 看出现的是 Decoder init failed xff0c 也是网上常见的
  • Android Xposed 框架

    一 Xposed框架简介 Xposed是Android平台上的一个常用的HOOK框架 xff0c 可以在不改变程序源代码的前提下 xff0c 影响程序的运行 一个支持Xposed的Android应用程序被称为一个Xposed模块 xff0c
  • 干了3年Android开发,2023年我离职了...

    今天在网上刷到一个帖子 xff0c 说Android岗 xff0c 在公司呆了三年 xff0c 由于疫情原因 xff0c 公司效益不是很好 xff0c 加上自己的技术一直停留在应用开发 xff0c 在公司可有可无 xff0c 被公司裁后找不
  • 新来的23岁Android开发上来秀了波操作,把几个老员工看傻了

    春招了 xff0c 公司来了个小伙子 xff0c 一看简历 xff0c 嘿 xff1f 22岁 xff0c 这不刚毕业的小毛孩子嘛 xff0c 结果没想到人家上来就把现有项目的性能优化了一遍 xff0c 给公司节省了一半的成本 xff0c
  • 程序员因薪资低拒绝offer,HR恼羞成怒,网友瞬间炸翻了..

    一名程序员员在求职过程中 xff0c 碰到一位薪资谈不拢就恼羞成怒的HR xff0c 并说出 估计你一辈子就是个程序员 这样的话 从这位开发和HR的聊天内容中 xff0c 我们可以看到二者的谈薪过程 首先 xff0c HR开出15k的薪资
  • Linux C系统编程——使用信号量实现生产者,消费者问题(两分钟搞明白)

    信号量和信号不是同一个东西 信号量 xff1a 指的是semaphore xff0c 相当于设置初始值为N的互斥量 xff0c N就表示同时访问的线程数 xff08 针对的是线程同步问题 xff09 信号 xff1a 指的是用来实现进程与进
  • Java线程状态中BLOCKED和WAITING有什么区别?

    刚才在看CSDN的问答时 xff0c 发现这个问题 原问题的作者是在观察jstack的输出时提出的疑问 xff0c 那么BLOCKED和WAITING有什么区别呢 xff1f 答复在JDK源码中可以找到 xff0c 如下是java lang
  • 随记-创建sftp用户并分配操作目录权限

    背景 xff1a 客户需要到我服务器上存取文件 xff0c 单独给他创建sftp账号 步骤 1 创建一个sftp用户 xff0c 名称暂定为sjzx sftp user xff0c 并修改密码 span class token functi
  • 【idea导入外部项目目录结构显示不完整解决方案】与【Maven配置永久生效方案】

    一 idea导入外部项目目录结构显示不完整 idea导入外部项目时 xff0c 目录结构显示不完整 xff0c 如下图所示 可能的情况即解决方案如下 xff1a 1 等待即可 xff1b idea正在下载项目所需依赖 xff0c 等待pom
  • Kotlin实现登录界面的密码显示与隐藏

    kotlin实现android登录界面 1布局的设计 xff0c 密码的显示和隐藏2主程序的监听事件的绑定 1布局的设计 xff0c 密码的显示和隐藏 span class token prolog lt xml version 61 34
  • Ubuntu18.04 设置 root 用户登录

    1 Ubuntu root用户 初始是没有密码的 xff0c 所以在使用之前最好先设置密码 xff0c 在终端使用以下指令 sudo passwd root 2 输入下方指令 xff0c 修改文件内容 xff0c 设置root用户登录 cd
  • 【Jetpack】学穿:ViewBinding → 视图绑定

    0x0 Jetpack简介 手机厂商还没卷完Android 12 xff0c Android 13 就悄然声息地来了 xff0c 距离Google 2008年9月22日发布Android 1 0 xff0c 已过去13个年头 历经13年的打
  • 如何做影视解说短视频?素材文案+配音,每一个都不能少

    如何做影视解说短视频 xff1f 素材文案 43 配音 xff0c 每一个都不能少 很多小伙伴都喜欢问我如何才能做出来一个影视解说短视频 xff0c 其实并没有我们想象中的那么难 只是如果想要做成大号 xff0c 变成拥有六千多万粉丝 xf
  • 如何抓住用户痛点进行短视频文案创作?三个小方法可运用

    如何抓住用户痛点进行短视频文案创作 xff1f 三个小方法可运用 众所周知 xff0c 短视频的文案创作 xff0c 其实也是需要抓住用户痛点的 xff0c 而只要能够做到这一点 xff0c 吸引用户其实就非常简单了 所谓抓住用户痛点 xf
  • 短视频文案怎么写才能吸引用户?幽默不是唯一,触发情感也很重要

    短视频文案怎么写才能吸引用户 xff1f 幽默不是唯一 xff0c 触发情感也很重要 很多做短视频的小伙伴们都会烦恼一件事 xff0c 那就是不知道短视频的文案究竟要怎么写才能够顺利的吸引到用户 很多小伙伴认为幽默的文案才能吸粉引流 xff
  • 短视频运营小技巧,标题文案都很重要,还有配音也别忘记

    短视频运营小技巧 xff0c 标题文案都很重要 xff0c 还有配音也别忘记 想要让自己的短视频获得高高的流量 xff0c 那么是离不开运营小技巧的 xff0c 那么今天我们就来分享三个短视频运营的小技巧 xff0c 标题文案都很重要 xf
  • java中怎样获取绝对路径,增加代码的灵活性?

    介绍获取绝对路径的方法 xff0c 一种是获取普通文件 xff0c 另一种是只能获取后缀名为 properties的文件 第一种 xff1a 在IO流读取文件时 xff0c 我们往往会通过直接写文件名的方式取 xff0c 例如 xff1a