我正在使用 javax.json 库并尝试读取文本文件中的 JsonObject。我正在使用此方法读取文件并将其作为 JsonObject 返回:
public static JsonObject readFile(String path)
{
InputStream is = new FileInputStream(path);
JsonReader rdr = Json.createReader(is);
JsonObject obj = rdr.readObject();
rdr.close();
return obj;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试读取文件时,我JsonReader rdr = Json.createReader(is)在行中收到一条错误消息,指出它
“无法自动检测编码,没有足够的字符”。
我可以做些什么来修复此错误而不更改文件中的内容?
文件是这样的:
{"6111":1,"6121":1,"6131":1,"6141":1,"6151":1,"6162":1,"6312":1,"6323":1,"6331":1,"6343":1,"totalGames":1}
如前所述,该方法createReader()需要更多字符来检测文件字符集
当您的文件太小而不允许这样做时,您可以将字符集传递给该方法
尝试这个:
public static JsonObject readFile(String path)
{
InputStream is = new FileInputStream(path);
JsonReader rdr = Json.createParserFactory(null).createReader(is, java.nio.charset.StandardCharsets.UTF_8);
JsonObject obj = rdr.readObject();
rdr.close();
return obj;
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的字符集与“UTF8”不同,请更改已使用的字符集