2011-02-11 106 views
2

初学android的问题。好的,我已经成功地编写了文件。例如。 //获取文件名 String filename = getResources()。getString(R.string.filename);where/data/data /?

 FileOutputStream toWriteTo; 
     try { 
      toWriteTo = openFileOutput(filename, MODE_WORLD_READABLE); 
      // get the string to write 
      String toWrite = getResources().getString(R.string.contentstowrite); 
      toWriteTo.write(toWrite.getBytes()); 
      toWriteTo.close(); 

      ...   
       } 
     catch (Exception ex) { 
      Toast.makeText(HelloFilesAppActivity.this, "fail!", Toast.LENGTH_SHORT).show(); 
     } 
     }}); 

而且我已经证明了它的存在,通过阅读它,并显示内容,即使使用getFilesDir(),并显示该文件夹中的所有文件。

我读过的所有文件都在/ data/data // files/ 但是我找不到它们。 (我在Windows XP上)。我的安装没有使用默认位置,因为我的C:\相当满。我查看了C:\ Documents and Settings \ Mike \ .android \ avd,并在项目文件夹中以及我安装SDK的位置:D:\ Program Files \ Android \ android-sdk-windows。那么/ data/data /在哪里?

我读过我可以使用ADB来回推送文件,但我使用的是Eclipse ADT,我宁愿使用除命令行之外的其他东西。我正在使用的这本书似乎暗示你可以使用Eclipse,但随后继续提供命令行命令。

我发现有关DDMS中的Project Explorer的信息,但是我没有看到我写的文件。

我一直在假设,我可能想要在Windows中使用其他方式创建文本文件,我会用我的应用程序阅读。所以如果答案是“你为什么要这么做?”,那就是我所追求的。最终也可能是数据库(这是在下一章:-))。

我必须使用ADB命令行吗?

感谢

迈克

回答

3

http://developer.android.com/guide/topics/data/data-storage.html

的方法您的使用,让你读/写的目录:

openFileOutput()

您可以直接保存在设备内部存储器中的文件。 默认情况下,保存到内部存储的文件对您的应用程序是私人的,并且其他应用程序无法访问它们(用户也不能访问)当用户卸载您的应用程序时,这些文件将被删除。

您需要将您使用的文件保存到SD卡。

试试这个:

getExternalStoragePublicDirectory Example

+0

好吧,我尝试了一个简单的外部存储设备,使它比链接的例子更简单(谢谢!)。我的代码是: – user613586 2011-02-12 19:37:29

3

这是您的手机上。您的手机拥有自己的文件系统。如果您使用的是仿真器,那么它就在仿真的文件系统上,它与您的文件系统完全分离。通过ADB访问手机(或模拟器)文件系统的唯一方法是(除非我们正在谈论SD卡,但不包含主机/数据/数据)。

备注 - 如果您的手机没有固定,您将无法访问/ data/data上的大量内容。我想你正在使用一个仿真器,这个仿真器是根源于你可以完全访问它的文件系统。

+0

是的,我使用的仿真器。 – user613586 2011-02-12 00:52:13