如何将网站上的文件保存到SD卡

2023-12-20

有谁知道如何通过wifi将文件从网络服务器(本地主机)保存到SD卡?

我正在对我的应用程序进行 xml 解析,为此我必须从 localhost 下载 xml 文件到 sdcard,然后标记解析。我一直在将 xml 文件下载到 SD 卡上。请指导我如何做到这一点..


您可以使用此方法将文件从互联网下载到您的 SD 卡:

public void DownloadFromUrl(String DownloadUrl, String fileName) {

   try {
           File root = android.os.Environment.getExternalStorageDirectory();               

           File dir = new File (root.getAbsolutePath() + "/xmls");
           if(dir.exists()==false) {
                dir.mkdirs();
           }

           URL url = new URL(DownloadUrl); //you can write here any link
           File file = new File(dir, fileName);

           long startTime = System.currentTimeMillis();
           Log.d("DownloadManager", "download begining");
           Log.d("DownloadManager", "download url:" + url);
           Log.d("DownloadManager", "downloaded file name:" + fileName);

           /* Open a connection to that URL. */
           URLConnection ucon = url.openConnection();

           /*
            * Define InputStreams to read from the URLConnection.
            */
           InputStream is = ucon.getInputStream();
           BufferedInputStream bis = new BufferedInputStream(is);

           /*
            * Read bytes to the Buffer until there is nothing more to read(-1).
            */
           ByteArrayBuffer baf = new ByteArrayBuffer(5000);
           int current = 0;
           while ((current = bis.read()) != -1) {
              baf.append((byte) current);
           }


           /* Convert the Bytes read to a String. */
           FileOutputStream fos = new FileOutputStream(file);
           fos.write(baf.toByteArray());
           fos.flush();
           fos.close();
           Log.d("DownloadManager", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec");

   } catch (IOException e) {
       Log.d("DownloadManager", "Error: " + e);
   }

}

您需要将以下权限添加到 AndroidManifest.xml:

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

如何将网站上的文件保存到SD卡 的相关文章

随机推荐

  • 在 Oracle 中找不到表 v$parameter

    我想使用 SQL 查询获取 Oracle 中的会话数 SELECT value FROM v parameter WHERE name sessions 但我收到这个错误 Error starting at line 1 in comman
  • Android 密码编辑文本显示文本

    我用过一个Edittext有属性android inputType textPassword 但是 当我在其中输入一些文本时 文本在变为实心项目符号之前会逐字符可见 当用户输入文本时 如何使文本不可见 请帮我 尝试添加EditText属性
  • Java Swing GUI 沙漏

    有一个JTabbedPane In my Swing程序 当用户单击选项卡时 程序需要一段时间来获取数据并处理结果 然后在所选选项卡中显示结果 如何显示沙漏或类似效果的东西让用户知道它正在处理数据 在完成工作之前不要再次单击该选项卡 最简单
  • java中的管道I/O流

    我无法理解 java 中管道 I O 流的用途 如果我使用输出流写一些东西 我无论如何都可以使用输入流再次读取它 那么管道流需要什么 Pipes in Java IO提供在同一 JVM 中运行的两个线程进行通信的能力 因此 管道是数据的常见
  • 来自数据库的 Symfony2 路由规则 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ConnectivityManager.CONNECTIVITY_ACTION 在 API >= 14 中断开网络连接?

    我需要获取与哪个设备断开连接的网络 现在我用 NetworkInfo ni intent getParcelableExtra ConnectivityManager EXTRA NETWORK INFO 并检查 ni isConnecte
  • SpriteKit:在播放之前将声音文件预加载到内存中?

    只是想知道这是否可能 目前 我第一次在应用程序运行时播放声音文件时 在声音实际播放之前有明显的延迟 就像它正在缓存它或其他什么 此后 它会立即播放 没有问题 但如果我完全关闭应用程序并重新启动它 第一次播放声音时延迟将恢复 这是我用来播放声
  • 如何在 AngularJS 部分中保留新行?

    在 AngularJS 部分中 我循环访问条目列表 如下所示 ul class entries li strong entry title strong p entry content p li ul 内容为 entry content 有
  • 如何使用 bash 复制每行中的字符串?

    我有一个文本文件 每一行都包含字符串 如下所示 abc dog zebra 我想让它像 abc abc dog dog zebra zebra 在 bash 中如何最好地做到这一点 你可以打电话sed sed r s 1 1 dupcol
  • 在命令行上使用 Firefox 截取整页屏幕截图

    我在 VPS 中的 Xvfb 上运行 Firefox 我想做的是对页面进行全屏截图 我可以使用以下命令将 Firefox 重定向到特定页面 firefox http google com 并使用 ImageMagick 截取屏幕截图 X 内
  • 如何调试为什么最简单的 MySQL 查询返回 false?

    我和 xampp 一起工作 我执行MySQL连接 connection mysql connect host user passw mysql select db db connection 我收到了 echo 命令的输出 通过检查布尔返回
  • Miniprofiler.Current 方法不返回时间

    我正在尝试使用此代码来获得时间MiniProfiler var profiler StackExchange Profiling MiniProfiler Current 但它返回0 ms结果 如何获得current time在迷你分析器中
  • 如何搜索 Perforce 仓库 (P4V) 中的文件内容?

    我目前使用 Perforce 版本 2010 2 该版本似乎没有集成的搜索功能来遍历每个文件的内容 我当前的 P4V 版本仅允许我搜索文件名 但不能搜索内容 对此的任何意见将不胜感激 先感谢您 我相信 尝试 2010 1 版本中添加的 p4
  • 尾部斜杠和首字母 www

    我有这个 htaccess RewriteEngine On redirect with www RewriteCond HTTP HOST mydomain NC RewriteRule http www HTTP HOST 1 R 30
  • 在 MySQL 中,为什么在使用未提交读时从 select 设置变量会获取锁?

    我们在 MySQL 中有一个使用 InnoDB 的表 并且我们使用未提交读的事务隔离级别 为什么设置 x如图所示获取锁 mysql gt set x select userID from users limit 1 Query OK 0 r
  • 如何使用GetFileVersionInfo函数?

    我有这段代码 返回文件版本 到结构中 我使用 shell32 dll 作为示例 但有一些值我不理解它们的含义 并且希望得到解释 这是代码 void GetFileVersion PCHAR pFilePath PVERSION pRetVe
  • Maven Profile - 根据打包激活配置文件

    我有一个 POM 它声明了我的项目中常见的 Web 应用程序内容 我使用它作为所有 Web 应用程序的父级 是否可以仅在包装战争时激活配置文件 我尝试过属性方法 但这不起作用 因为它不是系统 环境属性 由于构建失败 我可以在安装 POM 时
  • Android Espresso - 如何检查 EditText 提示?

    我开始使用 Espresso 运行我的基本测试 现在想弄清楚如何检查我的编辑文本是否具有特定的提示文本 谢谢 onView withId R id locationInput check matches Since 浓缩咖啡2 0 http
  • 从不同数据库映射 Doctrine 中的实体时会抛出 ReflectionException

    我正在尝试在 ZF2 应用程序中使用 Doctrine 2 该应用程序包含两个模块 每个模块都有自己的数据库 我需要使用跨数据库联接 以便可以将一个模块中的实体与另一个模块中的实体关联起来 这是一个 UML 图 http yuml me 5
  • 如何将网站上的文件保存到SD卡

    有谁知道如何通过wifi将文件从网络服务器 本地主机 保存到SD卡 我正在对我的应用程序进行 xml 解析 为此我必须从 localhost 下载 xml 文件到 sdcard 然后标记解析 我一直在将 xml 文件下载到 SD 卡上 请指