用我的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();
答案 0 :(得分:1)
你有两个问题。
最重要的是你认为new File(mContext.getFilesDir(), "RobLights.tmp")
创建了一个文件。它不是。它创建一个Java File
对象,表示文件系统上的位置。如果希望文件存在,则需要使用Java文件I / O写入File
指向的位置。
其次,您定义file
两次,一次使用上面的代码段,一次使用mContext.getFileStreamPath("RobLights.tmp")
。 IIRC,那些确实会解决到同一地点。但是,为了安全起见,我建议只定义file
一次。