Android不会创建本地文件

时间:2016-01-11 18:41:20

标签: java android

用我的Android代码感到悲伤。我真的很困惑,为什么这不起作用。我正在尝试将Hashmap保存到本地文件存储,但我甚至无法让文件存在。 在程序开始时调用此方法,以便稍后可以使用该文件。

调试宣布'不'...然后'仍然没有'所以我认为它没有被创建,我看到没有没有例外。 显然我错过了什么。

   public LighManager(Context mContext) {
        this.mContext = mContext;


    File file = mContext.getFileStreamPath("RobLights.tmp");
    if (file.exists()){

        Log.d("Fileexists", "indeed");
    }
    else
    {
        Log.d("Fileexists", "Not");
        try {
            file = new File(mContext.getFilesDir(), "RobLights.tmp");
        }catch (Exception x ){

            Log.d(TAG, "Exception " +x.toString());
        }
    }

    if (file.exists()){

        Log.d("Fileexists", "now it dooes");
    }else{

        Log.d("Fileexists", "Still doesnt");

    }

上述内容来自:

public class MyApplication extends Application {

private NetworkHostSocket mHostSocket = null;

public LightingSystem systemclass;
public LighManager mLighManager;


public MyApplication() {
    super();
}
  public void onCreate(){
    super.onCreate();
     mLighManager=new LighManager(this);
     mLighManager.readDataFromFile();

1 个答案:

答案 0 :(得分:1)

你有两个问题。

最重要的是你认为new File(mContext.getFilesDir(), "RobLights.tmp")创建了一个文件。它不是。它创建一个Java File对象,表示文件系统上的位置。如果希望文件存在,则需要使用Java文件I / O写入File指向的位置。

其次,您定义file两次,一次使用上面的代码段,一次使用mContext.getFileStreamPath("RobLights.tmp")。 IIRC,那些确实会解决到同一地点。但是,为了安全起见,我建议只定义file一次。