2015-10-13 59 views
0

我只是在尝试使用此代码编写的文本文件:安卓:试图保存文件

try { 

     File ins = new File(context.getFilesDir(), "myfile"); 
     FileOutputStream out = new FileOutputStream(ins); 
     out.write(string.toString().getBytes()); 
     out.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

我自己也尝试这样的代码:

File aux = context.getFilesDir(); 

    String filename = "myfile"; 
    String string = "Hello world!"; 
    FileOutputStream outputStream; 

    try { 
     outputStream = openFileOutput(aux + filename, MODE_PRIVATE); 
     outputStream.write(string.getBytes()); 
     outputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

问题:IM没有得到任何错误,但是他们都没有保存文件。我期望在​​找到新文件,因为content.getFilesDir()的输出就是这样。

而且,我无法找到根/data/文件夹,但一个/Android/data之一,而后者的里面,有几个目录,如com.android.browsercom.dropbox.android,但他们没有被命名为com.example.tirengarfio.myapplication

+0

您尝试/ storage/emulated/data吗?有时模拟不存在或可能事情正在存储在SD卡中,但您的文件可能在里面/存储 –

+0

你是如何验证该文件不存在 – ligi

回答

1

您需要root权限才能从adb访问/data/data

而是/ Android设备/数据中的一个,而后者的内部,有几个 目录像com.android.browser或com.dropbox.android,但其中没有 名为com.example.tirengarfio .myapplication

使用getExternalFilesDir如果你想在该目录中写入。您需要在清单上添加写入权限

+0

现在可以尝试将文件保存在'/ data'中。我已经为Android下载了一个文件管理器,现在我可以看到像'/ data','/ dev','/ devlog'这样的不同层次结构。但是当我去到/ data数据库时,它说这个文件夹是空的。我已将此行添加到'AndroidManifest.xml':'<使用权限android:name =“android.permission.WRITE_EXTERNAL_STORAGE”/>' – ziiweb

+0

FileManager没有权限访问/ data。这就是为什么没有看到任何东西 – Blackbelt

+0

,但我在我的智能手机上拥有root权限,我使用应用程序对其进行了检查。 – ziiweb

1

我自己也尝试这样的代码:

这是行不通的,因为aux + filename是无效的,你的代码会触发某种IOException。你的第一个代码片段更好。

我无法找到根/数据/文件夹,但一/安卓/数据一个

那是因为你正在寻找在external storage,不internal storage。内部存储在生产硬件上不可访问,但可以使用DDMS的文件浏览器在模拟器上浏览。

+0

我已经下载了Android的文件管理器,现在我可以看到目录'/ data','/ dev'等。但是当我去'/ data'时,里面什么也没有。 – ziiweb

+0

@ziiweb:正如我写的,内部存储在生产硬件上无法访问,但可以使用DDMS的文件浏览器在模拟器上浏览。那么,你下载了什么文件管理器?设备还是仿真器? – CommonsWare

+0

我刚安装了这两个设备,还有DDMS的文件浏览器,都是摇滚!谢谢!对于我来说 – ziiweb