如何解决使用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时,它都会重写旧数据。
要修复此问题,请找到您创建urlpatterns = [
path('test/<int:pk>/<str:slug>/',views.single_post,name ='post_detail'),path('commented/',views.addcomment,name='addcomment'),]
的位置
FileOutputStream
,并将布尔值设置为FileOutputStream(File file,boolean append)
。这样,您写入的数据将被附加到文件的末尾,而不是覆盖已经存在的数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。