文件在哪里使用"文件文件=新文件(文件名)"在Android

时间:2015-11-17 10:07:43

标签: android file

我正在编写一个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",如果我包含路径,它肯定会存储在该路径位置。但是,如果我没有找到目录,它仍然可以存储在设备中,但文件实际保存在哪里???

2 个答案:

答案 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();
}

}