国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

解決JavaWeb讀取本地json文件以及亂碼的問題

2024-07-14 08:41:11
字體:
來源:轉載
供稿:網友

最近在開發項目的時候遇到一個問題,在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文件以及亂碼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鸡泽县| 抚顺市| 佛坪县| 阆中市| 固阳县| 佛山市| 衡山县| 咸阳市| 金塔县| 天台县| 海城市| 无极县| 赤城县| 清苑县| 正蓝旗| 高阳县| 新宁县| 马鞍山市| 吉水县| 娄底市| 镇江市| 玛多县| 红原县| 长子县| 诸暨市| 宜良县| 和静县| 绥棱县| 无棣县| 岑巩县| 荥阳市| 滕州市| 湖口县| 高淳县| 颍上县| 兰州市| 高碑店市| 台中市| 新巴尔虎左旗| 河北区| 开封市|