尝试着想用openFileOutput方法存储信息,本来应该能在data/data/../file文件夹中找到我存储的文件,却发现没有file文件夹,只有cache和lib文件夹,这是为什么?
以下是代码:
public void Save(String text){
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = context.openFileOutput("data",Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(text);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(writer!=null){
writer.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
使用的是Genymotion模拟器
应该在/data/data//files/data,我运行了一下你的代码,可以找到“data”文件。你找不到files文件夹的原因可能是
genymotion的原因,建议换个虚拟机,或者有root权限的真机试试。
另:你代码第五行out = context.openFileOutput("data",Context.MODE_PRIVATE);的context用的有点莫名其妙,
或者你把全部代码贴出来,如果不是虚拟机的问题,就是代码的问题
设备如果没有root的前提下是无法查看data下数据的,可以用模拟器调试下。
genymotion模拟器并不能看,
在配置文件中添加文件读写权限了没?
在模拟器是可以看到 该文件的
注意添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
这是我参考你的代码:
public void saveText(String str)
{
FileOutputStream fos=null;
BufferedWriter writer=null;
try {
fos=_context.openFileOutput("data", Context.MODE_PRIVATE);
writer=new BufferedWriter(new OutputStreamWriter(fos));
writer.write(str);
} catch (Exception e) {
// TODO: handle exception
}finally
{
try {
if(writer!=null)
{
writer.close();
}
if(fos!=null)
{
fos.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}