Android FileOutputStream расположение сохранить файл
у меня есть приложение, которое сохраняет в файл (внутреннее хранилище) ввод данных пользователем и при запуске загружает этот файл и показывает содержимое. Я хотел бы знать: где я могу найти свой файл (data.txt
)?
Кроме того, если я ввожу "Hello", а затем "World" При загрузке файла, я вижу "HelloWorld" в той же строке, но я хочу, чтобы "Hello" и "World" печатались на двух разных строках.
для сохранения файла:
public void writeToFile(String data) {
try {
FileOutputStream fou = openFileOutput("data.txt", MODE_APPEND);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fou);
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
для загрузки файл:
public String readFromFile() {
String ret = "";
try {
InputStream inputStream = openFileInput("data.txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
спасибо.
[обновление]
я вставил "n " после каждого ввода:
user = (EditText) v.findViewById(R.id.username);
writeToFile(user.getText().toString() + "n");
но когда я печатаю свой файл, они всегда находятся в одной строке.
2 ответов
где я могу найти свой файл (данные.txt)?
вы можете найти путь к каталогу, в котором создается openFileOutput
, С помощью YourActivity.this.getFilesDir().getAbsolutePath()
.
но я хочу, чтобы "привет" и " мир " печатались в двух разных строках.
использовать line.separator
после записи слова в файл, например:
String separator = System.getProperty("line.separator");
outputStreamWriter.write(data);
outputStreamWriter.append(separator);
...
или вы также можете использовать replaceAll
разбить строку на несколько строк:
String separator = System.getProperty("line.separator");
data=data.replaceAll(" ",separator);
Я думаю, вы можете найти его здесь: data / data / [имя вашего пакета]/... и что касается написания в двух отдельных строках, просто добавьте "\n", когда вам нужно перейти к другой строке.