当前位置: 首页 > news >正文

建设银行上海黄浦支行网站网站建设经验材料

建设银行上海黄浦支行网站,网站建设经验材料,wordpress生成小程序,wordpress 与公众平台前言 本地的可修改配置文件的编写理应是一个很常用的功能,但由于数据库的存在,它鲜少被提及,大多数我们直接存储到数据库中了。 以至于现今,除了没接触数据库的新手时常使用它以外,它没有太多的出场机会。 也因此&am…

前言

本地的可修改配置文件的编写理应是一个很常用的功能,但由于数据库的存在,它鲜少被提及,大多数我们直接存储到数据库中了。

以至于现今,除了没接触数据库的新手时常使用它以外,它没有太多的出场机会。
也因此,其实很多人不太了解其中的存储机制以及可能存在的一些坑。

不过也有适合用本地配置的时候,例如我遇到了一个场景,需要保存一个邮箱格式,这个格式当然不会经常变化,因而存储到数据库不太方便,尤其我用的是关系型数据库MYSQL,存起来感觉很别扭。如果存到Redis中,一旦服务宕机,数据就会消失,虽然并不是很重要的数据,但也不是很好的解决方案。

分析

要了解如何生成一个本地的可编辑配置文件,首先就得想清楚文件应该放在哪?

新手可能会直接回答,这还不简单,直接跟代码一样放classes目录下不就得了。

答案显然是不行的,因为jar包本质上是一个压缩包,如果你放在IDE中直接运行,那么不会有任何问题,但是一旦你需要打jar包或者war包。你就无法动态的去修改Jar包中的内容,这点很容易理解。

所以,比较科学的方法,就是在Jar/War包的同级目录下,新建一个配置文件。

1.获取Jar包同级目录

如何获取Jar包的同级目录,可以使用jdk提供的Protection Domain
以下代码可以得到当前代码源的位置,简单来说,就是编译生成的classes目录。

File file=new File file=new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile());

但是要得到想要的Jar包路径还没有那么简单,因为这里有一个坑,在IDE中直接运行和打成Jar包后运行的效果是不同的。

例如以下的这段演示代码:

String name = new String("history.json");
File file=new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile());
System.out.println(file.toString());
String jarPath = file.getParentFile().getParent();//jar所在文件夹路径
System.out.println("jarPath: " + jarPath);
String resource = jarPath + File.separator +name;
System.out.println(resource);

(1)IDE中

在这里插入图片描述

(2)windows下运行Jar

在这里插入图片描述

(3)Linux下运行Jar

在这里插入图片描述

路径问题总结

由此,我们得出一个结论,上述获取jar包路径的代码,在IDE中运行的效果和打包后运行效果不同,且打包后Windows和Linux运行效果基本一致。

我们想要的Jar文件夹路径,需要向上获取三次父目录,正确的在打包后获取Jar包路径的代码应该如下:
resource即我们需要的配置文件路径,使用File.seperator是为了不同平台的适配性。

String name = new String("history.json");
File file=new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile());
File jarPath = file.getParentFile().getParentFile().getParentFile().getParentFile();//jar所在文件夹路径
String resource = jarPath.getPath().replace("file:","") + File.separator +name;

2.读取与修改配置文件

有了对应的配置文件路径,那么就很轻松了。

考虑到配置文件一般是Properties或Yaml格式,这里以Java本身支持的Properties为例。

使用字符流读取较为方便,因其可以自动处理编码问题。

例如:

 //使用propertiesReader reader =new FileReader(config);Properties properties = new Properties();properties.load(reader);System.out.println(properties.getProperty("last-update"));

总结

Java获取Jar、war包路径的可行方法是通过Protection Domain,在使用时要注意不同平台的微小差异,掌握了这个方法,不但可以用来写配置文件,也可以用来存储下载的图片、视频等内容,因而尤其对客户端应用的开发人员来说,十分有必要去了解。

http://www.sczhlp.com/news/145762/

相关文章:

  • 中卫网站建站设计福建网站开发公司
  • 网站策划技巧商丘有哪些大型企业
  • 手机wap购物网站模板我公司是做网站开发的怎么纳税
  • 山西长治一企业企业seo网站优化设计
  • 网站做导航的地图中信建设有限责任公司刚果金
  • 网站域名登录不了wordpress设置发邮件
  • 邓砚谷电子商务网站建设wordpress指定关键词自动内链
  • 完整教程:Python 高效实现 PDF 转 Word:告别手动复制粘贴
  • 山东省乡镇网站建设网站404页面做晚了
  • 做一个网站的基本步骤优秀网站设计推荐
  • 减肥养生网站建设棋牌网站哪里做
  • 个人接外包的网站营销型网站的公司
  • 福田公司企业文化优化设计英语
  • 网站建设需要注册什么类型的公司ui设计本科还是专科
  • 石家庄网站制作公司哪家好宜昌高端网站建设
  • 江桥做网站昆明建设咨询监理有限公司网站
  • 模拟退火 - 学习笔记
  • 自助建站工具网页设计与制作课程小结
  • 济宁做网站公司找融合福州网站设计服务
  • 网站开发培训班 上地郑州站
  • 设计比较好的企业网站我为群众办实事活动方案
  • 公司企业网站建设步骤歪咪小麻花官方网站怎么做零售
  • 北京网页设计制作网站服务专业网页制作
  • 网站制作的流程是什么网站在百度突然搜不到了
  • 贵州建设监理网站培训通知栏卖主机 服务器的网站
  • 企业网站优化方案企业网站建设合同范本免费
  • Markdown语法入门一:标题,列表,表格与字体
  • 质数筛
  • pnpm 安装后无法使用
  • 数学解题中常见的“漏解”情况分析