Android FileOutputStream 位置保存文件
Android FileOutputStream location save file
我有一个应用程序可以将用户输入的数据保存到文件(内部存储)中,并在启动时加载该文件并显示内容。我想知道:在哪里可以找到我的文件 (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");
但是当我打印我的文件时,它们总是在同一行。
我想你可以在这里找到它:data/data/[你的包名]/...关于在两行中编写,只要在你需要转到另一行时添加“\n”。
Where can I find my file (data.txt)?
您可以通过YourActivity.this.getFilesDir().getAbsolutePath()
.
找到openFileOutput
创建的目录路径
But I want "Hello" and "World" printed in two different lines.
在文件中写入一个单词后使用line.separator
,例如:
String separator = System.getProperty("line.separator");
outputStreamWriter.write(data);
outputStreamWriter.append(separator);
...
或者您也可以使用 replaceAll
将 String 分成多行:
String separator = System.getProperty("line.separator");
data=data.replaceAll(" ",separator);
我有一个应用程序可以将用户输入的数据保存到文件(内部存储)中,并在启动时加载该文件并显示内容。我想知道:在哪里可以找到我的文件 (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");
但是当我打印我的文件时,它们总是在同一行。
我想你可以在这里找到它:data/data/[你的包名]/...关于在两行中编写,只要在你需要转到另一行时添加“\n”。
Where can I find my file (data.txt)?
您可以通过YourActivity.this.getFilesDir().getAbsolutePath()
.
openFileOutput
创建的目录路径
But I want "Hello" and "World" printed in two different lines.
在文件中写入一个单词后使用line.separator
,例如:
String separator = System.getProperty("line.separator");
outputStreamWriter.write(data);
outputStreamWriter.append(separator);
...
或者您也可以使用 replaceAll
将 String 分成多行:
String separator = System.getProperty("line.separator");
data=data.replaceAll(" ",separator);