解决JavaWeb读取本地json文件以及乱码的问题
时间:2019-04-15
本文章向大家介绍解决JavaWeb读取本地json文件以及乱码的问题,主要包括解决JavaWeb读取本地json文件以及乱码的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近在开发项目的时候遇到一个问题,在myecilpes上使用googlede gson读取项目中的json文件成功,然后把项目发布到tomcat上再使用同样的方法,会提示“系统找不到指定的路径”
文件放在src/config/下
JsonParser parser = new JsonParser(); JsonObject object = (JsonObject) parser.parse(new FileReader("config/Test.json"));
在找了许多文章以后,发现问题应该是,发布到服务器之后,读取文件的相对路径并不能寻找到文件,所以只能使用绝对路径,找到在tomcat的 webapps下的项目Test
路径是
D:\Program Files\Tomcat 8.0\webapps\Test\WEB-INF\classes\Test.json
修改读取路径之后可以读取到json文件,以下是通过单独的Java类中获得绝对路径方法,因为文件夹中有空格,所以我把其中空格部分被改变的进行替换
String path = JsonUtil.class.getClassLoader().getResource("/Test.json").getPath().replace("%20", " "); JsonParser parser = new JsonParser(); JsonObject object = (JsonObject) parser.parse(new FileReader(path ));
但是这样读取出来的内容却是乱码的,原因可能是系统编码格式和编译器的编码格式不一致,所以我改用流的方式读取文件
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.util.ArrayList; import java.util.List; import com.google.gson.JsonArray; import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; /** * @author LK */ public class JsonUtil { /** * 读取本地json文件,获取json格式字符串 * @return */ public static String getJsonString(){ String path = JsonUtil.class.getClassLoader().getResource("/Test.json").getPath().replace("%20", " "); File file = new File(path); try { FileReader fileReader = new FileReader(file); Reader reader = new InputStreamReader(new FileInputStream(file),"utf-8"); int ch = 0; StringBuffer sb = new StringBuffer(); while ((ch = reader.read()) != -1) { sb.append((char) ch); } fileReader.close(); reader.close(); String jsonString = sb.toString(); return jsonString; } catch (IOException e) { e.printStackTrace(); return null; } } }
然后再把获取到的json格式的String进行解析
String jsonString = JsonUtil.getJsonString(); JsonParser parser = new JsonParser(); JsonObject object = (JsonObject) parser.parse(jsonString);
这样就可以获取到正确的JsonObject
以上这篇解决JavaWeb读取本地json文件以及乱码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- ubuntu中安装tomcat
- python文件操作
- Owasp测试4.0手册
- 推荐一款Web渗透测试数据库
- 【提莫】一个域名收集及枚举工具
- chmod: changing permissions of `/usr/local/bin/...
- a windows service with the name MYSQL already e...
- NameError: name 'admin' is not defined(彻底解决方案)
- Error: No module named blog
- ubuntu中的django安装配置与操作
- IOS开发之-搜索栏UISearchController详解
- java归并排序(最精简代码)
- java希尔排序(最精简代码)
- java插入排序(最精简代码)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux 中几个正则表达式的用法
- 产品级垃圾文本分类器
- 突发!Windows XP 源码泄露!
- GitHub 神器:写代码、搜问题,全部都在「终端」完成!
- Redis系列:单机主从模式搭建
- Python 爬取链家成都二手房源信息 asyncio + aiohttp 异步爬虫实战
- 10 个冷门但又非常实用的 Docker 使用技巧!
- 利用 Shell 脚本实现邮件监控 Linux 系统的内存
- 拥有此神技,脚本调试从此与 echo、set、test 说分手!
- 很少用到,但掏出来让人感到牛逼的Web API
- 突击并发编程JUC系列-并发工具 CountDownLatch
- 推出 TF Lite Task Library 接口,简化 ML移动端开发流程
- 排序算法之我观
- 线性筛素数(探索中的不断优化)
- 麦森数