代码如下所示,我设置一个断点以检查文件是否成功创建,但是在调试窗口中变量值是一个空字符串,如图所示,为什么会发生这种情况?可能需要打开IDE的某些选项?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File file = new File(getFilesDir(), "img.png");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
android studio版本是3.1.4
已编辑: 现在这个问题严重影响了我的发展,我将读取如下文件:
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();//throw exception
}
但是我可以看到该文件确实存在于我的应用程序私有文件夹中,为什么要对此进行隐藏?我试图在外部存储中写入和读取文件,但结果相同。
答案 0 :(得分:1)
这是一个奇怪的问题。当我尝试您在测试应用程序中发布的代码时,我可以看到getFilesDir()
的值。它向我指出了可能是环境问题的方向。就我而言,我尝试在配置为具有API级别23的Nexus 6p的仿真器上进行检查,建议您尝试使用其他具有不同配置的设备或新仿真器。这可能是模拟器或设备错误。
答案 1 :(得分:0)
我有类似的问题。对于我来说,“启用toString()
对象视图”很有帮助。
设置>构建,执行,部署>调试器>数据视图> Java