ファイルに書き込んでいる一連の文字列があります。
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
リストを印刷すると、次のようになります
10-28 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());
}
n-1 要素を取得しようとしています。
何が間違っているのかわかりません。