直接上代码,拿走可用。读取几百兆的大文件也么得问题~
package com.test.util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.*;
/**
* Json读取工具类
*
* @author yyh
*/
public class JsonFileUtil {
private static final Logger logger = LogManager.getLogger(JsonFileUtil.class);
public static void main(String[] args) {
File file = new File("D:/test.json");
String readJsonFile = readJsonFile(file);
System.out.println(readJsonFile);
}
/**
* 读取json文件
*
* @param jsonFile json文件
* @return 返回json字符串
*/
public static String readJsonFile(File jsonFile) {
String jsonStr;
logger.info("————开始读取" + jsonFile.getPath() + "文件————");
try {
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(jsonFile));
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, "utf-8"), 5 * 1024 * 1024);// 5M缓冲
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
//每一行数据
sb.append(line);
}
fis.close();
reader.close();
jsonStr = sb.toString();
logger.info("————读取" + jsonFile.getPath() + "文件结束!————");
return jsonStr;
} catch (Exception e) {
logger.info("————读取" + jsonFile.getPath() + "文件出现异常,读取失败!————");
e.printStackTrace();
return null;
}
}
}