最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年06月07日 09:38:07   作者:天涯邊的蝸牛  
今天小編就為大家分享一篇解決JavaWeb讀取本地json文件以及亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在開發(fā)項目的時候遇到一個問題,在myecilpes上使用googlede gson讀取項目中的json文件成功,然后把項目發(fā)布到tomcat上再使用同樣的方法,會提示“系統(tǒng)找不到指定的路徑”

文件放在src/config/下

JsonParser parser = new JsonParser();
    JsonObject object = (JsonObject) parser.parse(new FileReader("config/Test.json"));

在找了許多文章以后,發(fā)現(xiàn)問題應該是,發(fā)布到服務器之后,讀取文件的相對路徑并不能尋找到文件,所以只能使用絕對路徑,找到在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 ));

但是這樣讀取出來的內(nèi)容卻是亂碼的,原因可能是系統(tǒng)編碼格式和編譯器的編碼格式不一致,所以我改用流的方式讀取文件

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文件以及亂碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯誤的解決

    使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯誤的解決

    這篇文章主要介紹了使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯誤的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Java類加載器之ContextClassLoader詳解

    Java類加載器之ContextClassLoader詳解

    這篇文章主要介紹了Java類加載器之ContextClassLoader詳解,ContextClassLoader是一種與線程相關的類加載器,類似ThreadLocal,每個線程對應一個上下文類加載器,需要的朋友可以參考下
    2023-10-10
  • Java中StringBuilder字符串類型的操作方法及API整理

    Java中StringBuilder字符串類型的操作方法及API整理

    Java中的StringBuffer類繼承于AbstractStringBuilder,用來創(chuàng)建非線程安全的字符串類型對象,下面即是對Java中StringBuilder字符串類型的操作方法及API整理
    2016-05-05
  • 如何使用Idea搭建全注解式開發(fā)的SpringMVC項目

    如何使用Idea搭建全注解式開發(fā)的SpringMVC項目

    這篇文章主要介紹了如何使用Idea搭建全注解式開發(fā)的SpringMVC項目,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Springboot項目中運用vue+ElementUI+echarts前后端交互實現(xiàn)動態(tài)圓環(huán)圖(推薦)

    Springboot項目中運用vue+ElementUI+echarts前后端交互實現(xiàn)動態(tài)圓環(huán)圖(推薦)

    今天給大家?guī)硪黄坛剃P于Springboot項目中運用vue+ElementUI+echarts前后端交互實現(xiàn)動態(tài)圓環(huán)圖的技能,包括環(huán)境配置及圓環(huán)圖前端后端實現(xiàn)代碼,感興趣的朋友一起看看吧
    2021-06-06
  • JavaWeb的監(jiān)聽器和過濾器你了解嗎

    JavaWeb的監(jiān)聽器和過濾器你了解嗎

    這篇文章主要為大家詳細介紹了JavaWeb的監(jiān)聽器和過濾器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • SpringBoot中的PropertySource原理詳解

    SpringBoot中的PropertySource原理詳解

    這篇文章主要介紹了SpringBoot中的PropertySource原理詳解,PropertySource?是一個非常重要的概念,它允許您在應用程序中定義屬性,并將這些屬性注入到?Spring?環(huán)境中,需要的朋友可以參考下
    2023-07-07
  • 關于weblogic部署Java項目的包沖突問題的解決

    關于weblogic部署Java項目的包沖突問題的解決

    這篇文章主要介紹了關于weblogic部署Java項目的包沖突問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 探究MyBatis插件原理以及自定義插件實現(xiàn)

    探究MyBatis插件原理以及自定義插件實現(xiàn)

    這篇文章主要介紹了探究MyBatis插件原理以及自定義插件實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 詳解重試框架Spring retry實踐

    詳解重試框架Spring retry實踐

    spring retry是從spring batch獨立出來的一個能功能,主要實現(xiàn)了重試和熔斷。這篇文章主要介紹了詳解重試框架Spring retry實踐,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論

徐闻县| 呼和浩特市| 集贤县| 辉县市| 确山县| 霍山县| 高邮市| 城步| 永德县| 河曲县| 西吉县| 嘉峪关市| 湖州市| 阳曲县| 昂仁县| 聂拉木县| 韩城市| 合江县| 大安市| 鄯善县| 岳阳县| 嘉荫县| 和硕县| 资兴市| 连山| 滁州市| 山阳县| 禹城市| 外汇| 孟津县| 黄陵县| 大余县| 盐山县| 闵行区| 嘉鱼县| 自贡市| 龙胜| 平谷区| 建瓯市| 宜兰县| 桃江县|