如何在ENOENT IOexception中保存文件

用户名

如何在Android中保存文件?我有以下代码:

 final File file = new File(cont.getExternalFilesDir(null), filename);
                if (!file.exists()) {
                    file.createNewFile();
                }

我得到

03-21 11:31:29.903: W/System.err(31668): java.io.IOException: open failed: ENOENT (No such file or directory)
03-21 11:31:29.903: W/System.err(31668):    at java.io.File.createNewFile(File.java:948)

我保存文件的完整代码如下:

final File file = new File(context.getExternalFilesDir(null), filename);
            if (!file.exists()) {
                // file.mkdirs();
                file.createNewFile();
            }
            final OutputStream output = new FileOutputStream(file);
            try {
                try {
                    final byte[] buffer = new byte[1024];
                    int read;
                    while ((read = input.read(buffer)) != -1)
                        output.write(buffer, 0, read);
                    output.flush();
                } finally {
                    output.close();
                }
                Log.i("save_file", "save to disk is ok");
            } catch (Exception e) {
                e.printStackTrace();
            }

我也有权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

有人可以指出我做错了吗,谢谢

编辑:问题是我想要保存的文件的名称,所以它不应该包含受限的字符,我的格式是这样的:"xxx/xxx.jpg"因此'/'不是文件名的有效字符。谢谢

用户名

最好使用Environment.getExternalStorageDirectory()而不是context.getExternalFilesDir(null),即使看起来相同。

这是我的代码:

String extr = Environment.getExternalStorageDirectory().toString();
        File mFolder = new File(extr + "/MainFolder_Photo");

        if (!mFolder.exists()) {
            mFolder.mkdir();
        }

        String strF = mFolder.getAbsolutePath();
        mSubFolder = new File(strF + "/Pictures");

        if (!mSubFolder.exists()) {
            mSubFolder.mkdir();
        } 

        // check file are there or not;// if present delete

        try {


        File yourDir = new File(mSubFolder.getAbsoluteFile().toString());
        for (File f : yourDir.listFiles()) {

            if (f.length()>0){

        f.delete();

            }

        }
        } catch (Exception e) {
            // TODO: handle exception
        }
        // file name
        String s = "Puzzle_Photo.png";

        File f = new File(mSubFolder.getAbsolutePath(), s);

        strMyImagePath = f.getAbsolutePath();

        OutputStream output;
        try {
            output = new FileOutputStream(f);
            URL url = new URL("file://" + filePath);// your data
            InputStream input = url.openStream();
            byte[] buffer = new byte[1024];
            int bytesRead = 0;
            while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
                output.write(buffer, 0, bytesRead);
            }

            output.close();
            input.close();

            return true;

        } catch (Exception e) {

            e.printStackTrace();
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中保存文件

来自分类Dev

如何在mexopencv中保存svm文件

来自分类Dev

如何在熊猫中保存DTA文件?

来自分类Dev

如何在mexopencv中保存svm文件

来自分类Dev

如何在vbs中保存xlsx文件?

来自分类Dev

如何在Android中保存图片文件?

来自分类Dev

如何在nodeJs中保存文件?

来自分类Dev

如何在猫鼬中保存文件

来自分类Dev

如何在 fastcoloredtextbox 中保存文件?

来自分类Dev

如何在 Electron 中保存大文件?

来自分类Dev

如何在模拟中保存或读取文件

来自分类Dev

如何从Heroku中保存文件?

来自分类Dev

JHipster如何在文件系统中保存文件?

来自分类Dev

如何在设置文件中保存对象列表?

来自分类Dev

如何在当前目录中保存文件?

来自分类Dev

如何在Python中的文件中保存两列数组

来自分类Dev

如何在txt文件中保存异常?

来自分类Dev

如何在Chrome应用中保存多个文件

来自分类Dev

如何在MATLAB中保存输出图像文件...?

来自分类Dev

如何在数据库中保存文件路径?

来自分类Dev

如何在Java文件中保存字符串

来自分类Dev

如何在sRGB颜色配置文件中保存图像

来自分类Dev

如何在IntelliJ 14中保存暂存文件

来自分类Dev

如何在任何平台的temp目录中保存文件?

来自分类Dev

如何在VB.NET中保存文件?

来自分类Dev

如何在python中保存修剪的wave文件?

来自分类Dev

如何在文件中保存字典(对象的键)然后阅读

来自分类Dev

如何在.net Core Worker服务中保存登录文件?

来自分类Dev

如何在当前目录(COSMOS)中保存文件