吾生也有涯,而知也无涯。这篇文章主要讲述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;
}
谢谢。
[UPDATE]
我在每次输入后都插入了“ n”:
user = (EditText) v.findViewById(R.id.username);
writeToFile(user.getText().toString() + "
");
但是当我打印我的文件时,它们总是在同一条线上。
答案
我在哪里可以找到我的文件(data.txt)?您可以使用
openFileOutput
找到YourActivity.this.getFilesDir().getAbsolutePath()
创建的目录路径。但是我希望“Hello”和“World”印在两个不同的行上。在文件中写入单词后使用
line.separator
,例如:String separator = System.getProperty("line.separator");
outputStreamWriter.write(data);
outputStreamWriter.append(separator);
...
或者您也可以使用
replaceAll
将String分成多行:String separator = System.getProperty("line.separator");
data=https://www.songbingjia.com/android/data.replaceAll(" ",separator);
另一答案【Android FileOutputStream位置保存文件】我想你可以在这里找到它:数据/数据/ [你的包名] / ...并且关于在两个单独的行中写入,只要你需要转到另一行就添加“ n”。
推荐阅读
- PlayerPrefs没有在android上工作
- 恢复android中活动的动态UI元素
- 将Android中的位图保存为外部存储中的JPEG文件夹
- 如何在android中删除包()
- Visual Studio,Android(找出Nuget-packages所需的框架)
- ImportError(没有名为'app'的模块)
- 慢nuget vs2017安装包android
- Android CTS不执行测试
- 使用命令行使用Android编号发送短信