尝试保存并检查文件是否已保存在内部存储中

时间:2017-02-04 00:35:04

标签: java android

我试图在内部存储中创建一个txt文件。 当我执行操作并调用负责创建文件的函数时,不会发生错误。但是,当我检查文件是否实际在/ data / data /文件夹中创建时,我找不到包含我的包名称的文件夹。

错误在哪里?

Ps。:我已经从这里看到了几个关于这个主题的链接,但在所有情况下都是相同的情况。

public void criarArq(Context mcoContext,String sFileName, String sBody){
    File file = new File(mcoContext.getFilesDir(),"mydir");
    if(!file.exists()){
        file.mkdir();
    }

    try{
        File gpxfile = new File(file, sFileName);
        FileWriter writer = new FileWriter(gpxfile);
        writer.append(sBody);
        writer.flush();
        writer.close();

    }catch (Exception e){

    }
}

我用这种方式调用函数......

criarArq(getApplicationContext(), arqNome, "teste");

感谢您的帮助!

---更新---

这是我现在的代码:

try {
            FileWriter writer = new FileWriter(gpxfile);
            writer.append("teste");
            writer.flush();
            writer.close();
            Toast.makeText(InfoEntregasActivity.this, "created",
                    Toast.LENGTH_LONG).show();
        } catch (IOException e) {
            //Don't eat the exception, do something with it, e.g.
            Log.e("criarArq", e.toString()); //this will give you your error in the log cat
            Toast.makeText(InfoEntregasActivity.this, e.toString(),
                    Toast.LENGTH_LONG).show();
            throw new RuntimeException(e); //this will bomb your program out for when the error is unrecoverable
        }

我尝试使用和不使用Toast(相同的结果),但是使用Toast我总是得到"创建"味精。

1 个答案:

答案 0 :(得分:1)

  

......没有错误发生

你正在吃任何可能的例外,所以我不会那么肯定。

public void criarArq(Context mcoContext,  String fileName, String body) {
    File file = new File(mcoContext.getFilesDir(),"mydir");
    file.mkdirs(); //no need to check exists with mkdirs

    File gpxfile = new File(file, fileName);
    try {
        FileWriter writer = new FileWriter(gpxfile);
        writer.append(body);
        writer.flush();
        writer.close();
    } catch (IOException e) {
        //Don't eat the exception, do something with it, e.g.
        Log.e("criarArq", e.toString()); //this will give you your error in the log cat
        throw new RuntimeException(e); //this will bomb your program out for when the error is unrecoverable
    }
}

其他提示,mkdirs会生成多个级别,并exists会为您进行检查。

请勿使用与类型相关的前缀,例如: s...它是一种非常老式的,在约会现代IDE之前。

查看文件的去向

Log.d("criarArq", gpxfile.toString());