ユーザーが入力したデータである二重リスト (mydata) と現在の日付である文字列リスト (dates_Strings) をファイルに保存しています。
ユーザーがデータを入力して「保存」ボタンを押すと、データと現在の日付が保存されます。
したがって、ユーザーは「1」を入力して保存を押すことができます (1, 08/05/13)
「2」と入力して保存を押します (2, 08/05/13)。
ユーザーは 1 日 (同じ日付) にデータを入力する可能性があるため、日付の多くのインスタンスを保存したくありません。その日付のすべてのユーザー データを保存したいと考えています。
私は次のように試しました:
for (int i=1;i<mydata.size();i++){
bw.write(mydata.get(i)+",");
while (!(dates_Strings.get(i).equals(dates_Strings.get(i-1))))
bw.write(dates_Strings.get(i)+"\n");
}
ただし、最後に入力したデータのみが保存されます。
私は次のように保存しています:
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File (sdCard, "MyFiles");
directory.mkdirs();
File file = new File(directory, filename);
FileOutputStream fos;
//saving them
try {
fos = new FileOutputStream(file,true); //true in order to append
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
for (int i=1;i<mydata.size();i++){
//if (!(dates_Strings.get(i).equals(dates_Strings.get(i-1))))
bw.write(mydata.get(i)+","+dates_Strings.get(i)+"\n");
}
value.setText("");
bw.flush();
bw.close();
} catch (IOException e2) {
e2.printStackTrace();
}//catch
}
私は次のようにロードしています:
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File (sdCard, "MyFiles");
File file = new File(directory, filename);
String s;
FileInputStream fis;
try {
fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
do {
s = br.readLine();
if (s != null ){
String[] splitLine = s.split(",");
mydata.add(Double.parseDouble(splitLine[0]));
//dates_Strings.add(thedate.parse(splitLine[1]));
dates_Strings.add(splitLine[1]);
}
} while (s != null );
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}