我正在编写一个Android应用程序。在 MainActivity.java 中,我创建了一个方法来编写然后从文件中读取内容。这些代码成功运行我可以将数据存储在名为abc.txt的文件中,但是我无法在ES文件资源管理器中找到该文件。
public void writeInIt(View view) {
try {
String Message = editText.getText().toString();
final File myFile = new File("abc.txt");
if (!myFile.exists()) {myFile.createNewFile(); }
FileOutputStream outputStream = new FileOutputStream(myFile);
outputStream.write(Message.getBytes());
outputStream.close();
editText.setText("");
Toast.makeText(getApplicationContext(), "Message Saved", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
}
它在哪里保存文件?为什么我无法通过文件资源管理器进行搜索? 参考" http://developer.android.com/reference/java/io/File.html",如果我包含路径,它肯定会存储在该路径位置。但是,如果我没有找到目录,它仍然可以存储在设备中,但文件实际保存在哪里???
答案 0 :(得分:2)
"文件文件=新文件(文件名)"
此代码不保存任何内容,它只为文件或控制器路径创建一个类包装器。实际创建文件的最接近的方法是使用file.createNewFile
方法。
有从Google撰写文件的指南:Saving Files
[编辑]
以下代码生成异常"打开失败:EROFS(只读文件系统)":
File fl = new File("test12.txt");
try {
fl.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
In Android manifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
this is the code :
public void generateNoteOnSD(String sFileName, String sBody){
try
{
File root = new File(Environment.getExternalStorageDirectory(), "Notes");
if (!root.exists()) {
root.mkdirs();
}
File gpxfile = new File(root, sFileName);
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.flush();
writer.close();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
e.printStackTrace();
importError = e.getMessage();
iError();
}
}