2015-06-20 227 views
0
package org.jaberrio.personai2; 
import android.content.Context; 
import android.widget.Toast; 
import java.io.FileOutputStream; 

public class DataBaseManager { 

    public void setDataBase(Context context) { 
     String fileName = "CoolDataBaseFile.txt"; 
     String inputText = "Random Text Goes Here"; 
     FileOutputStream outputStream; 
     try { 
      outputStream = context.openFileOutput(fileName, context.MODE_PRIVATE); 
      outputStream.write(inputText.getBytes()); 
      outputStream.close(); 
      Toast finishedLoad = Toast.makeText(context, "I Have Finished Loading", Toast.LENGTH_SHORT); 
      finishedLoad.show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

的Android FileOutputStream中没有创建文件

现在我想不过来创建一个文件时,我把这种构造的吐司通知我,它跑了,但没有创建文件。我在数据/数据/中查找它,但我的应用程序目录甚至没有。

而且我是从一个片段调用构造函数是这样的:

DataBaseManager db = new DataBaseManager(); 
     db.setDataBase(getActivity().getApplicationContext());
+0

“我在数据/数据/中查找它,但是我的应用程序目录不存在” - 您是在设备上还是在仿真器上测试它? – CommonsWare

+0

谢谢你的帮助。在Aslo @ Der Golem的物理设备上,我将尽力在一分钟内回复您。 (ASUS NEXSUS 7-2012) – Jaberrio

+0

Nope outputStream.flush();没有区别我还没有创建文件。你能否解释它的作用?如果我应该保留它? [图片中的文件](http://puu.sh/iwcfJ/0ebc976c5a.png) – Jaberrio

回答

2

在一个物理设备

您没有通过正常手段获得的内部存储在实际设备上。主要的例外是,如果你是根设备的话。

adb shell run-as让你仿佛他们正在运行你的应用程序,因此原则上,你可以用它来检查内部存储和查看文件是否有运行shell命令。

更简单的解决方案是使用模拟器,尤其是x86模拟器,因为您可以使用DDMS(在Eclipse中)或Android Device Monitor(从Android Studio启动)浏览模拟器上的内部存储器。