gpt4 book ai didi

java - 当在 FileWriter 中追加 "true"时,项目从列表中删除

转载 作者:行者123 更新时间:2023-12-02 04:23:36 25 4
gpt4 key购买 nike

我正在尝试将一个项目添加到存储在文件中的列表中。当我创建 FileWriter 实例来执行此操作时,我遇到了奇怪的行为。如果将“true”传递给构造函数中的“append”参数 (new BufferedWriter(new FileWriter(filename, true))),则该项目不会添加到列表中。如果我不传递参数,该项目将添加到列表中,但每次它都会覆盖现有的项目。谁能帮我解决这个问题吗?

我尝试过的:

-使用FileOutputStream - 结果相同,总是覆盖项目。

-添加了Context.MODE_PRIVATE - 结果相同,总是覆盖项目。

-bw.append(convertTaskToGson(task));

private List<Task> fillListFromGson(FileInputStream imputeStream) {
BufferedReader bufferedReader = prepareReadingFromFile(imputeStream);
String receiveString;
List<Task> taskList = new ArrayList<>();
try {
while ((receiveString = bufferedReader.readLine()) != null) {
stringBuilder.append(receiveString);
String jsonNewObject = stringBuilder.toString();
Task task = gson.fromJson(jsonNewObject, Task.class);
taskList.add(task);
}
return taskList;
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG_INTERNAL_FILE_ERROR, "cannot fill list from gson");
return null;
}
}


private boolean saveTaskToInternalStorage(Task task) {
BufferedWriter bw = null;
try {
File file = new File(AppClass.getApplication().getFilesDir(), filename);

bw = new BufferedWriter(new FileWriter(filename, true));
bw.write(convertTaskToGson(task));
bw.newLine();
bw.flush();
} catch (IOException ioe) {
ioe.printStackTrace();
return false;
} finally {
if (bw != null)
try {
bw.close();
return true;
} catch (IOException ioe2) {
return false;
}
} return true;
}

}

预期结果:新项目将添加到文件末尾。

最佳答案

重写此 block 代码:

BufferedReader  inputStream = new BufferedReader(new                      InputStreamReader(getFileInputStream(internalFileName)));
while ((receiveString = inputStream.readLine()) != null) {
Task task = gson.fromJson(receiveString, Task.class);
taskList.add(task);
}

我的错误是不正确包含 StringBuilder,它破坏了文件项目的显示。重新安装应用程序后 - BufferedWriter(new FileWriter(filename, true)) 可以完美地在我的文件中添加新项目。太蠢了(

关于java - 当在 FileWriter 中追加 "true"时,项目从列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56619524/

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