国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茶陵县| 礼泉县| 丹巴县| 余江县| 东莞市| 库尔勒市| 舞阳县| 大洼县| 洛浦县| 德州市| 余干县| 台江县| 靖远县| 阜平县| 闽清县| 红桥区| 扶风县| 咸阳市| 咸宁市| 宝山区| 尉犁县| 眉山市| 涿鹿县| 阿瓦提县| 乐清市| 南宫市| 区。| 泾源县| 乌鲁木齐市| 大城县| 大化| 盐池县| 海丰县| 桐梓县| 开阳县| 四子王旗| 三亚市| 米林县| 彩票| 保靖县| 禄劝|