博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
boot中jar包部署的方式读取classes下的文件
阅读量:4042 次
发布时间:2019-05-24

本文共 1699 字,大约阅读时间需要 5 分钟。

下面的new File(String url)的方式在window中可以找到路径,但是单独部署jar文件时,获取到的URL路径是带有jar的
String infile =  this.getClass().getClassLoader().getResource("").getFile()+"malls.json";        StringBuffer sb = new StringBuffer() ;        BufferedReader br = null ;        try {            br = new BufferedReader(new FileReader(infile)) ;            String s=null ;            while((s=br.readLine()) !=null){                sb.append(s) ;            }            br.close();        } catch (FileNotFoundException e) {            log.error("FileNotFoundException:"+e);        } catch (IOException e) {            log.error("IOException:"+e);        }finally {            if(br !=null){                try {                    br.close();                } catch (IOException e) {                    log.error("close br error:"+e);                }            }        }

正确的是写法是采用流的方式进行处理,同时读取流时设置编码utf-8

InputStream stream = getClass().getClassLoader().getResourceAsStream("malls.json") ;//        log.info("infile:"+infile);        StringBuffer sb = new StringBuffer() ;        BufferedReader br = null ;        try {            br = new BufferedReader(new InputStreamReader(stream,"UTF-8")) ;            String s=null ;            while((s=br.readLine()) !=null){                sb.append(s) ;            }            br.close();        } catch (FileNotFoundException e) {            log.error("FileNotFoundException:"+e);        } catch (IOException e) {            log.error("IOException:"+e);        }finally {            if(br !=null){                try {                    br.close();                } catch (IOException e) {                    log.error("close br error:"+e);                }            }        }

转载地址:http://fhadi.baihongyu.com/

你可能感兴趣的文章
链表逆序问题
查看>>
链表所有为key的节点全部删除
查看>>
判断俩单链表是否相交
查看>>
前中后序遍历二叉树的非递归实现
查看>>
大数相乘,结果在2000位以内
查看>>
二叉树是否对称
查看>>
动态规划-找零钱
查看>>
动态规划-跳台阶
查看>>
动态规划-01背包问题
查看>>
动态规划-优化编辑器问题
查看>>
堆排序(C++实现)
查看>>
图的俩种遍历方式(DFS,BFS)C++代码实现
查看>>
Hibernate设置主键自增,执行HQL语句
查看>>
设置MYSQL最大连接数与WAIT_TIMEOUT
查看>>
java根据ip地址获取详细地域信息
查看>>
解决s:iterator嵌套s:radio的传值问题
查看>>
位运算-不用加减乘除做加法。
查看>>
C++继承的三种方式(公有,私有,保护)
查看>>
待修改:C++多线程编程学习笔记
查看>>
冒泡、选择、插入、归并
查看>>