我想把一串字符串寫入一個文件中: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());
}請求大家?guī)兔Ω恼x謝。
2 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊
在 writeScoreToFile
函數(shù)中沒有看見新的行,或者任何類型的分隔符,可以單獨(dú)區(qū)分寫入的分?jǐn)?shù)。
既然那樣的話,你的文件在一行中應(yīng)該包含 1009610096100
, getArrayFromFile 中的循環(huán)只會被執(zhí)行一次
while ((line = bufferedReader.readLine()) != null) { lines.add(line); }
因此 List 只包含一個元素,代碼 blastScores.get(blastScores.size()-1)將會得到最后的唯一的元素,就是1009610096100
。
添加回答
舉報
0/150
提交
取消