Я пытаюсь написать идентификатор студента в текстовом файле в SD-карте. Я уже создал файл с именем students.txt
в моей SD-карте.Почему файл перезаписывается в внешнем хранилище Android?
Проблема в том, что когда я пишу значение и читаю файл, я получаю только последнее значение в файле. Когда я открываю свой файл, я могу видеть только последнее значение, записанное в нем.
Что я делаю неправильно? Я пишу файл в режиме добавления, используя outputStreamWriter
, но проблема остается прежней.
//function to insert
private void myInsertFunc(String data) {
try {
File file = new File("/sdcard/" + FILENAME);
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.append(data);
outputStreamWriter.close();
fileOutputStream.close();
Toast.makeText(getApplicationContext(), "Student ID: " + data + " Inserted Successfully!", Toast.LENGTH_SHORT).show();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
//function to read
private void myReadFunc() {
try {
//InputStream inputStream = openFileInput(FILENAME);
//InputStream inputStream = getResources().openRawResource(R.raw.student);
File file = new File("/sdcard/" + FILENAME);
FileInputStream fileInputStream = new FileInputStream(file);
if (fileInputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ((receiveString = bufferedReader.readLine()) != null) {
//if(receiveString.contains(data))
//{
Toast.makeText(getApplicationContext(), "Student ID: " + receiveString , Toast.LENGTH_SHORT).show();
//break;
//}
}
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
Попробуйте ['new FileInputStream (file, true)'] (http://developer.android.com/reference/java/io/FileOutputStream.html#FileOutputStream%28java.io.File,%20boolean%29), чтобы открыть файл в режиме добавления. –
прилагается к файлу, –
@ S.D. Спасибо за его работу, но теперь мне больше не нужно писать outputStreamWriter.append()? Вместо этого я пишу outputStreamWriter.write()? –