为了账号安全,请及时绑定邮箱和手机立即绑定

不能在文件中写入新的行

不能在文件中写入新的行

FFIVE 2019-03-22 19:15:39
我想把一串字符串写入一个文件中:private void writeScoreToFile(BlastScore result)     {         try{             FileWriter fstream = new FileWriter(getFilesDir() + CaptureActivity.BLAST_SCORES,true);             BufferedWriter out = new BufferedWriter(fstream);             out.write(Integer.toString(result.getBlastScore()));             out.close();         }catch (Exception e){             System.err.println("Write Error: " + e.getMessage());         }     }我想把它再作为一个列表读出来。private List<String> getArrayFromFile(String filename) throws IOException     {         FileReader fileReader = new FileReader(getFilesDir() + filename);         BufferedReader bufferedReader = new BufferedReader(fileReader);         List<String> lines = new ArrayList<String>();         String line = null;         while ((line = bufferedReader.readLine()) != null) {             lines.add(line);         }         bufferedReader.close();         return lines;     }写入列表中的是:100 96 100 96 100打印出的列表却是这样的:02-26 21:22:31.130: I/System.out(936): Last Score: 1009610096100打印列表用的是下面的代码:try {             List<String> blastScores = getArrayFromFile(CaptureActivity.BLAST_SCORES);             System.out.println("Last Score: " + blastScores.get(blastScores.size()-1));         } catch (IOException e) {             // TODO Auto-generated catch block             System.err.println("Read Error: " + e.getMessage());         }请求大家帮忙改正,谢谢。
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

在 writeScoreToFile 函数中没有看见新的行,或者任何类型的分隔符,可以单独区分写入的分数。
既然那样的话,你的文件在一行中应该包含 1009610096100, getArrayFromFile 中的循环只会被执行一次

while ((line = bufferedReader.readLine()) != null) {
   lines.add(line);
}

因此 List 只包含一个元素,代码 blastScores.get(blastScores.size()-1)将会得到最后的唯一的元素,就是1009610096100


查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 422 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信