Android 将文件保存到外部存储

2023-12-01

我在 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?


使用此功能将位图保存在 SD 卡中

private void SaveImage(Bitmap finalBitmap) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/saved_images");    
     if (!myDir.exists()) {
                    myDir.mkdirs();
                }
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-"+ n +".jpg";
    File file = new File (myDir, fname);
    if (file.exists ())
      file.delete (); 
    try {
        FileOutputStream out = new FileOutputStream(file);
        finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();

    } catch (Exception e) {
         e.printStackTrace();
    }
}

并将其添加到清单中

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

EDIT:通过使用这条线,您将能够在图库视图中看到保存的图像。

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                         Uri.parse("file://" + Environment.getExternalStorageDirectory())));

也看看这个链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 将文件保存到外部存储 的相关文章

  • 如何在 StateListDrawable 中设置可绘制对象的 alpha 值?

    我想在按下时更改可绘制对象的 alpha 值 因此 我创建了两个可绘制对象并将它们放入 StateListDrawable 中 并设置按下状态的 alpha 值 但它就是行不通 StateListDrawable content new S
  • 服务在后台运行?

    我正在构建的应用程序的功能之一是记录功能 我通过在服务中启动 MediaRecorder 对象来实现此目的 Intent intent new Intent v getContext RecordService class Messenge
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • 文件比较的逻辑

    我试图编写一个用于文件比较的程序 例如 file1 1 2 3 4 5 file2 1 2 3 4 5 如果我逐行执行 我会得到 1 1 2 2 3 4 3 5 4 5 但是 事实是这些文件之间的唯一区别是 我想要得到这样的东西 1 1 2
  • Android 上的硬币识别

    我目前正在开发一个 Android 应用程序 它能够拍摄硬币的现有图像 或者使用内置摄像头扫描单个硬币 非常像 Google Goggles 我正在使用 Android 版 OpenCV 我的问题如下 什么方法最适合使用 OpenCV 在
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • Twitter 集成期间获取访问令牌函数行为不当

    我只是想使用 twitter4j 从我的 Android 应用程序向 Twitter 分享文本 首先 我尝试的是我创建了一个新项目 并且这个特定的代码运行成功 然后我在我的应用程序中混合了该特定代码 登录 Twitter 成功完成 之后我发
  • 来自外部 XML 的 Android 本地化

    是否可以使用从服务接收到的 XML 在运行时翻译 Android 应用程序 如果可能的话 请有人指出我正确的方向 谢谢 Warning 我读到的所有内容都表明 让您的应用程序更改语言不是一个好主意 因为 Android 框架不支持它 并且可
  • 将搜索结果更新为 Android 中的 Lazy Adapter

    我有项目列表 想为其实现搜索功能 因此 我有一个带有 addTextChangedListener 的文本框 搜索结果运行良好 但当我尝试将结果设置为 ListView 时 新结果将附加到旧结果中 我正在使用惰性适配器 如何清除适配器中的旧
  • MAT(Eclipse 内存分析器)- 如何从内存转储中查看位图

    I m analyzing memory usage of my Android app with help of Eclipse Memory Analyzer http www eclipse org mat also known as
  • ImageButton 拉伸背景图像

    我正在尝试创建一个没有边框的 ImageButton 但遇到了图像按钮大小的问题 我使用 Eclipse ADT 将 ImageButton 拖到布局中并选择背景图像 图像按钮显示如下 正如您所看到的 背景图像和图像按钮周边之间有一个边框
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • MPAndroidChart:组合图表

    我在用MPAndroidChart 库 https github com PhilJay MPAndroidChart 我想用CombinedChart创建这样的图表 那可能吗 我尝试了一下 但似乎不起作用 因为 这些条目没有按我的预期工作
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu

随机推荐

  • 参考变量

    在某些文本中 我们不能将常量值分配给引用变量 当我执行这样的程序时 我可以做到 有什么条件我们不能将常量值赋给引用变量吗 您可以将常量引用初始化为常量值 const int i 12 如果引用不是 const 则会出现编译器错误 int i
  • Powershell Active Directory 帐户属性变量

    抱歉新手问题 我正在使用 Powershell 3 获取所有用户帐户的列表 我正在尝试为帐户生成 已启用 或 已禁用 的输出 我可以使用以下命令从活动目录获取帐户状态代码 rc Rech PropertiesToLoad Add userA
  • 如何让 angular2 [innerHtml] 工作 [重复]

    这个问题在这里已经有答案了 我不知道做错了什么 因为没有报告错误 我有一个组件类 import Component OnInit ViewContainerRef from angular core Component selector a
  • AsyncTask - 扩展和 doInBackground 需要哪些参数?

    这段使用 AsyncTask 的代码有什么问题 尤其 我需要在 fetchSchools 中放入哪些参数 我需要在 doInBackground 中放入哪些参数 我发现了很多 有用 的示例 但它们都在这些参数中使用伪代码 并且没有解释我实际
  • 通过深度 HashMap 递归迭代

    我有一个类似于以下内容的 JSON 字符串 foo bar id 1 children some string id 2 children some string id 2 children 我对该字符串进行 JSON 解析 将所有对象转换
  • 循环更新 mayavi 绘图

    我想做的是循环更新 mayavi 图 我希望绘图的更新在我指定的时间完成 与动画装饰器不同 因此 我想要运行的一段示例代码是 import time import numpy as np from mayavi import mlab V
  • 当函数没有被前向声明时,GCC 在编译器阶段不会抛出错误

    Ok 我的目录中有 3 个文件 main c include
  • 如何使用 sklearn.datasets.load_files 加载数据百分比

    我正在加载 8000 张图像sklearn datasets load files并通过 resnet 从keras以获得瓶颈特征 然而这个任务在 GPU 上需要花费几个小时 所以我想知道是否有办法告诉load files加载一定百分比的数
  • Jersey:在不使用 web.xml 文件的情况下禁用 OPTIONS 请求的自动 Wadl 生成?

    我想完成与这个问题相同的事情 禁用 OPTIONS 请求的自动 Wadl 生成 但我们没有web xml文件 我们还利用ResourceConfig 其中getProperties方法是最终的 所以我不能按照中的建议覆盖它其他问题 我试过打
  • 为什么将 D3 源复制到 Angular 服务中?

    我尝试将 d3 使用到一个有角度的项目中 如主要示例之一中提到的NG通讯 其中展示了如何在 Angular 中设置 D3 服务 我想知道将 D3 作为 Angular 服务如何与 Angular yeoman 和 Bower 配合良好 还是
  • 水文年时间序列

    目前我正在研究河流流量数据分析 我有从1935年至今的每日出院记录 我想提取每个水文年的年度最大流量 从 01 11 开始到明年 31 10 然而 我发现HydroTSM包只能处理自然年 我尝试使用 zoo 包 但我发现它很难计算 因为每年
  • XSD 用于带有 HREFLANG 的站点地图

    我们正在推出一个支持 20 种语言和大量区域内容 即针对特定国家或一组国家的内容 的主要网站 因此 我们有一个在站点地图中使用 xhtml link 和 rel hreflang 的教科书用例 我们通常更喜欢从 XSD 生成类 以便我们可以
  • 生成两个具有相同maven项目的jar

    我想在执行 mvn clean install 时从同一个 Maven 项目生成两个 jar 两个罐子之间的唯一区别是内容META INF folder 目前 我已经我的应用程序 jar 我现在想要my jar xxx jar and 我的
  • 如何对主键重新排序?

    我有一个包含 5700 条记录的表 主键是一个整数 现在我注意到缺少一些值 像这样 100 data 101 data 102 data 104 data 103不见了 我如何更新所有行以使顺序正确 104变成103在我的示例中 在一个 S
  • 无法加载文件或程序集“AjaxControlToolkit”或其依赖项之一。该系统找不到指定的文件

    我已经使用我的 Visual Studio 安装了 AJAXcontrolsToolkit 并将 Combobox Ajaxcontrol 控件放置在我的网页中 当我编译代码时出现以下错误 无法加载文件或程序集 AjaxControlToo
  • 如何将云存储上的文件中的 json 导入到 Bigquery

    我正在尝试通过 api 将文件 json txt 从云存储导入到 Bigquery 但抛出错误 当通过网络用户界面完成此操作时 它可以正常工作并且没有错误 我什至设置了 maxBadRecords 0 有人可以告诉我我在这里做错了什么吗 代
  • 预加载的声音被卸载?

    所以 我有以下测试代码
  • 在 JavaScript 中使用“<”和“>”运算符比较两个字符串

    比较运算符如 gt and lt return Boolean当它们的输入作为两个字符串值给出时的值 我尝试了几个例子 String vs String console log firstName lt lastname true cons
  • PHP 中的 DOM:解码实体并设置 nodeValue

    我想使用 PHP 对 XML 文档执行某些操作DOM其标准库的一部分 正如其他人已经发现 然后就必须处理解码的实体 为了说明困扰我的问题 我举一个简单的例子 假设我们有以下代码 doc new DOMDocument doc gt load
  • Android 将文件保存到外部存储

    我在 Android 应用程序上创建目录并将文件保存到其中时遇到了一些问题 我正在使用这段代码来执行此操作 String filename MyApp MediaTag MediaTag objectId png File file new