gpt4 book ai didi

java - FileWriter不写入长度为78510的字符串

转载 作者:行者123 更新时间:2023-12-01 10:52:35 24 4
gpt4 key购买 nike

我有一个问题,我有一个 MyObject 列表,我想将其写入 json 文件中。

所以我用 gson 解析我的列表为 json 并将字符串写入文件中,但没有写入任何内容,文件已创建但为空(0 八位字节)。

如果我的List<MyObject>有 60 个项目,我将其解析为 json,该字符串的长度为 14482,并且 Filewriter 工作正常。

如果我的List<MyObject>有 60 多个项目,我将其解析为 json,Filewriter 不执行任何操作,并且文件为空。例如,如果我的列表有 300 个项目,则长度为 78909

这是我在文件中写入列表的代码:

 private void saveTrace() {
try {
Log.d(mapsActivity.TAGDEBUG, "Sauvegarde de la trace automatique");
Log.d(mapsActivity.TAGDEBUG, "Nombre de point compris dans la trace automatique: " + String.valueOf(listBeanTraceUser.size()));
String sFileNameTrace = "trace_" + currentDate + ".xml";
File traceFile = new File(root, sFileNameTrace);

MediaScannerConnection.scanFile(mapsActivity, new String[]{traceFile.getAbsolutePath()}, null, null);

FileWriter writer = new FileWriter(traceFile);
BufferedWriter out = new BufferedWriter(writer, 32768);
String jsonStringTrace = gson.toJson(listBeanTraceUser);
Log.d(mapsActivity.TAGDEBUG, "lenght jsonStringTrace : " + String.valueOf(jsonStringTrace.length()));
out.write(jsonStringTrace);
out.close();
} catch (Exception e) {
Log.d(mapsActivity.TAGDEBUG, "Erreur lors de la Sauvegarde de la trace automatique");
e.printStackTrace();
}
}

最佳答案

尝试添加

out.flush();

在写入和关闭文件之间以确保它已完全完成。

这是因为您使用的 BufferedWriter 的内部缓冲区大小为 32768

关于java - FileWriter不写入长度为78510的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com