为了账号安全,请及时绑定邮箱和手机立即绑定

将Android文件保存到外部存储

将Android文件保存到外部存储

MYYA 2019-06-21 17:44:15
将Android文件保存到外部存储在创建一个目录并在我的Android应用程序上将一个文件保存到它时,我遇到了一个小问题。我用这段代码来做这件事:String filename = "MyApp/MediaTag/MediaTag-"+objectId+".png";File file = new File(Environment.getExternalStorageDirectory(),  filename);FileOutputStream fos;fos = new FileOutputStream(file);fos.write(mediaTagBuffer);fos.flush();fos.close();但它带来了一个例外:java.io.FileNotFoundException:/mnt/sdCard/myApp/mediacard/mediacard-0.png(没有此类文件或目录)在这方面:fos = new FileOutputStream(file);如果我将文件名设置为:"MyApp/MediaTag-"+objectId+"它正在工作,但如果我试图创建文件并将其保存到另一个目录,则会抛出异常。你知道我做错了什么吗?还有另一个问题:是否有任何方法使我的文件在外部存储中是私有的,这样用户就不能在图片库中看到它们,除非他将设备连接为Disk Drive?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

你需要得到许可

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

public boolean saveImageOnExternalData(String filePath, byte[] fileData) {

    boolean isFileSaved = false;
    try {
        File f = new File(filePath);
        if (f.exists())
            f.delete();
        f.createNewFile();
        FileOutputStream fos = new FileOutputStream(f);
        fos.write(fileData);
        fos.flush();
        fos.close();
        isFileSaved = true;
        // File Saved
    } catch (FileNotFoundException e) {
        System.out.println("FileNotFoundException");
        e.printStackTrace();
    } catch (IOException e) {
        System.out.println("IOException");
        e.printStackTrace();
    }
    return isFileSaved;
    // File Not Saved
}


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信