需求:需要读取远程服务文件,并且把文件内容的json数据解析到程序中使用
注意:解决中文乱码 (文件保存成utf-8编码即可)
代码:(json文件来源包括本地与远程服务器)
package com.example.demo.tan;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.io.*;
import java.net.URL;
/**
* JsonTest
*
* @Author Tan
* @Date: 2021/2/26 10:38
* @Version 1.0
*/
public class JsonTest {
/**
* 读取文件
*
* @param fileName
* @return
*/
public static String readJsonFile(String fileName) {
String jsonStr = "";
try {
File jsonFile = new File(fileName);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
StringBuilder buffer = new StringBuilder();
try {
// 文件要保存成 utf-8格式。不能是utf-8无BOM
// 文件从 远程服务获取
URL url = new URL("http://192.168.1.2:8089/server/task1.txt");
InputStream inputStream = url.openStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
while (bufferedReader.ready()) {
buffer.append((char) bufferedReader.read());
}
bufferedReader.close();
bufferedInputStream.close();
inputStream.close();
System.out.println(buffer.toString());
JSONObject jobj = JSON.parseObject(buffer.toString());
System.out.println(jobj.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 文件从 本地绝对路径获取
String path = "D:\\task1.txt";
String s = readJsonFile(path);
JSONObject jobj = JSON.parseObject(s);
System.out.println(jobj.toString());
}
}
🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌
👨🌾本文结束,希望有帮到阁下。更多问题可以到我博客来搜索
👉【点击搜索】
👉【进入博客】
如果觉得不错,欢迎关注点赞🙏