一.前言  SpringBoot 打成 Jar 包形式运行后 ,resources 目录下文件的读取修改和原来不太一样,网上比较多的是关于读取的方式,修改的几乎没有,终于在 stackoverflow 上找到了正确的打开方式. 二. 读取 InputStream stream = null; BufferedReader bufferedReader = null; try { stream = getClass().getClassLoader().getResourceAsStream("s…
问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行调试时,文件是真实存在于磁盘的某个目录.此时通过获取文件路径,是可以正常读取的,因为文件确实存在. 而打包成jar以后,实际上文件是存在于jar这个文件里面的资源文件,在磁盘是没有真实路径的. 所以通过ResourceUtils.getFile或者this.getClass().getResourc…
在maven项目中,文件结构如下: proj ---src ----main ----java ----Main.java ----resources ----userFile.properties ----test ----java ----Test.java ----resources ----userFile.properties 如果在程序中要读取resources目录下面的res.txt文件,需要用到以下代码: private Properties loadUser() throws …
加载方式: FileInputStream keyStoreIn = new FileInputStream(ResourceUtils.getFile("classpath:ca/clientKeystore.jks"));FileInputStream trustStoreIn = new FileInputStream(ResourceUtils.getFile("classpath:ca/clientTruststore.jks"));…
Web项目开发中,经常会有一些静态资源,被放置在resources目录下,随项目打包在一起,代码中要使用的时候,通过文件读取的方式,加载并使用: 今天总结整理了九种方式获取resources目录下文件的方法. 其中公用的打印文件方法如下: 查看代码 /** * 根据文件路径读取文件内容 * * @param fileInPath * @throws IOException */ public static void getFileContent(Object fileInPath) throws…
注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 新建一个 maven 目录 App.java 用于读取 resources 中的 a.txt 内容. a.txt 是被读取的资源文件. grs@grs App $ tree . ├── pom.xml ├── src │   ├── main │   │   ├── java │   │   │ …
今天想在Springboot项目想引进静态资源时,发现自己的项目里没有教程里面的 src/main/resources这个目录,目录如下 我的项目目录结构是这样的,但是还不是很清楚下面的那个src目录是作甚的.就想着新建一个src/main/resources目录 步骤:右键项目,然后操作如下: 目录名 就可以了 然后先在 src/main/resources下新建一个static文件夹,步骤如下: 命名后即可 然后就可以在static下导入静态资源了(比如图片) 注意,这个static表示的是…
动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar  -tvf  gateway.jar  |  grep  topjui.config.js 二.在当前jar包文件目录新建相同的路径并把要替换的文件放在目录下 mkdir  -p  BOOT-INF/classes/static/public/js/ 三.执行以下命令替换 jar  -uvf  gateway.jar  BOOT-INF/classes/static/public/js/topjui…
1. 原理 每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消息加入消息队列,而后线程会依次处理消息队列中的消息. 2. Message 初始化:一般使用Message.obtain()方法获取一个消息对象,该方法会检查Message对象池中是否存在可重复利用的对象,若无,才会new一个新对象. what:相当于Message的标识符,区别于其它消息. arg1.arg2:int类型,可传递整数. obj:objec…
1. 泛型 AysncTask<Params, Progress, Result> Params:启动任务时传入的参数,通过调用asyncTask.execute(param)方法传入. Progress:后台任务执行的进度,若不用显示进度条,则不需要指定. Result:后台任务结束时返回的结果. 2. 重要方法 doInBackground(Params... params):必须重写的方法,后台任务就在这里执行,会开启一个新的线程.params为启动任务时传入的参数,参数个数不定. on…