使用 FileOutputStream 在不同的行上写入多个分数
write multiples scores on different lines using FileOutputStream
(API 27, android 8.1) 我是 android 世界的新手,我试图理解为什么输出总是写在 .txt 的同一第一行,即使我每次在文件上写时都使用 lineSeparator。这是我的代码:
@Override
public void onClick(View v) {
String usernameD = username.getText().toString();
String highscore = "Score: " + scoreT + " - Cards Left: " + cLeftT + " - Username: " + usernameD;
FileOutputStream fos = null;
try {
fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
String lineSeparator = System.getProperty("line.separator");
fos.write(lineSeparator.getBytes());
fos.write(highscore.getBytes());
fos.flush();
username.getText().clear();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
每次打开 fileOutputStream 时它都会重写旧数据。
要修复它,请找到您创建的位置 FileOutputStream
FileOutputStream(File file, boolean append)
并将布尔值设置为 true
。这样,您写入的数据将附加到文件末尾,而不是覆盖已经存在的数据。
(API 27, android 8.1) 我是 android 世界的新手,我试图理解为什么输出总是写在 .txt 的同一第一行,即使我每次在文件上写时都使用 lineSeparator。这是我的代码:
@Override
public void onClick(View v) {
String usernameD = username.getText().toString();
String highscore = "Score: " + scoreT + " - Cards Left: " + cLeftT + " - Username: " + usernameD;
FileOutputStream fos = null;
try {
fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
String lineSeparator = System.getProperty("line.separator");
fos.write(lineSeparator.getBytes());
fos.write(highscore.getBytes());
fos.flush();
username.getText().clear();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
每次打开 fileOutputStream 时它都会重写旧数据。
要修复它,请找到您创建的位置 FileOutputStream
FileOutputStream(File file, boolean append)
并将布尔值设置为 true
。这样,您写入的数据将附加到文件末尾,而不是覆盖已经存在的数据。