如何从服务器下载XML文件并将其保存到SD卡中?

2024-01-05

在我的应用程序中,我尝试从服务器下载 XML 文件并将其存储在 SD 卡中。为此,我使用以下代码。

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

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

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

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

               /* 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) {
           e.printStackTrace();
       }

这给了我java.net.SocketException:操作超时例外...请帮助我..我是android开发新手


public void DownloadFiles(){

    try {
        URL url = new URL("http://nodeload.github.com/nexes/Android-File-Manager/zipball/master");
        URLConnection conexion = url.openConnection();
        conexion.connect();
        int lenghtOfFile = conexion.getContentLength();
        InputStream is = url.openStream();
        File testDirectory = new File(Environment.getExternalStorageDirectory() + "/Folder");
        if (!testDirectory.exists()) {
            testDirectory.mkdir();
        }
        FileOutputStream fos = new FileOutputStream(testDirectory + "/zip.zip");
        byte data[] = new byte[1024];
        int count = 0;
        long total = 0;
        int progress = 0;
        while ((count = is.read(data)) != -1) {
            total += count;
            int progress_temp = (int) total * 100 / lenghtOfFile;
            if (progress_temp % 10 == 0 && progress != progress_temp) {
                progress = progress_temp;
            }
            fos.write(data, 0, count);
        }
        is.close();
        fos.close();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从服务器下载XML文件并将其保存到SD卡中? 的相关文章

  • SugarORM 错误或缺少数据库

    我尝试让 Android 项目与 SugarORM 一起使用 但是 我遇到了以下错误 引起原因 android database sqlite SQLiteException 没有这样的表 DOCUMENT 代码1 编译时 INSERT O
  • 如何向 ListView 添加粘性标题?

    我有一个 listView 所以我想添加一个粘性标头 以便它粘在 listView 的顶部 当 listView 中开始不同的类别时 不同的标头会取代它 就像联系人一样 其中 a 为粘性标头位于顶部 直到 b 出现 有没有图书馆可以做 我正
  • 旋转对话框的自定义主题

    我想自定义当我单击 spinnermode dialog 中的微调器时出现的对话框的外观 我想使用对话框片段 但没有找到文档 是否可以 不会 外观是固定的 给人一种操作系统的感觉 您必须创建自己的微调器才能执行此操作 这并不容易 但如果微调
  • 如何在从另一个活动调用一个活动时延迟一些?

    我有一个应用程序 其中我正在接收包含他的位置的短信 收到短信后 它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上 在调用第二个活动之前 它会显示一个类似于通知的吐司在屏幕上 但由于调用第二个活动 吐司没有出现 我的问题是我们
  • 如何突出显示在 Textview android 中单击的单词

    我正在创建一个应用程序 在其中我从 EditText 中的用户获取输入 现在 单击按钮后 输入的字符串将显示在 TextView 中 现在我的问题是 当用户单击任何单个单词时 我会使该单词在 TextView 中突出显示 例如 用户输入 你
  • 如何调试使用maven构建的android应用程序

    我目前正在尝试从 Eclipse 调试我的设备上的 Android 应用程序 设备已添加 我可以在控制台和 Eclipse 中看到它 控制台 Windows adb devices List of devices attached 0019
  • Eddystone Beacon 中广播的 MAC ID 会改变吗?

    我将描述我的设置 我制作了一个模拟 Eddystone 信标的 Android 应用程序 我能够使用 PlayStore 中的 Beacon Toy 应用程序检测手机上的 Eddystone 信标 但问题是 自上次检查以来 显示的 MAC
  • 无法创建变体“android-manifest-metadata”

    我在 Playstore 上上传了我的应用程序 bundle aab 方法 它在 android 6 0 上运行正常 没有错误 但在 android 7 0 设备上出现错误 并且无法运行该应用程序 我使用了 Gradle 构建类路径 3 1
  • 如何在 Android 中启用/禁用日志级别?

    例如 我有很多日志语句需要调试 Log v TAG Message here Log w TAG WARNING HERE 在设备电话上部署此应用程序时 我想关闭详细日志记录 我可以在其中启用 禁用日志记录 The Android 文档对日
  • PinnedHeader Google 加上 GridView?

    背景 Google google 应用程序可以很好地查看 亮点 类别中的图像 对于该屏幕上的每个部分 他们制作了一个标题 其中包含可单击的文本和一个用于选择该部分的所有照片的按钮 对于每个部分 他们还以网格状方式显示照片 它是这样的 这是另
  • 使用 Backstack 时 TabLayout ViewPager 未加载 [重复]

    这个问题在这里已经有答案了 我在一个片段中使用 TabLayout 和 viewPager 在选项卡下方的两个片段之间切换 当我单击下部片段之一内的 FAB 时 我会加载一个新片段 用于输入 但是 当我按 后退 按钮时 TabLayout
  • 对超类方法的调用应该是第一个语句吗?

    语音识别的结果可以在onActivityResult int requestCode int resultCode Intent data 方法 如图这个例子 http developer android com resources sam
  • 免费和付费版本 Android 应用程序的最佳方法?

    我开发了一个 Android 应用程序 我希望它可以作为免费版本和付费版本提供 最好的方法是什么 我可以想到三种解决方案 将项目分成两个分支并维护它们 创建一个库项目并有两个附加项目 一个 免费 版本和一个 付费 版本 使用应用内结算 问
  • Osmdroid:如何从我自己的位图(图块)创建和加载地图?

    我开始使用 Osmdroid 我想使用这项技术来显示有关 F1 赛道的地图 我有一张大图片 我可以将它切割成更小的图块 我可以修改osmdroid库来上传这些图片吗 我想将这些位图 图块 保存在我的资产文件夹中 我非常不知道如何做到这一点
  • 等待视图通过 IdleResource 变得可见

    我正在使用 Espresso 2 2 编写仪器测试 我想测试的流程 测试点击的单选按钮 onClick 向 API 发起请求 每次不同时间我收到回复后 积极响应触发活动中调用的接口方法 onRequestSuccess 我正在屏幕上显示名为
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • Android SSH 示例代码

    我想创建一个 android 活动 用于与远程设备 通过 Wifi 建立 SSH 会话并在远程设备上执行一些 Linux 命令 任何人都可以获得一个快速 简短的示例 用于使用以下命令进行连接 身份验证和发送远程命令Trilead https
  • Android:禁用 1.5 纸杯蛋糕动画过渡

    长话短说 如何禁用活动之间的屏幕转换 如果您愿意的话 我们实现了自己的选项卡处理程序 现在它正在选项卡之间进行转换 这看起来很俗气 谢谢 Chris See android content Intent FLAG ACTIVITY NO A
  • Xamarin.Android JmDNS 绑定问题

    我开始研究 Xamarin Android 的 JmDNS 绑定 我设法构建了绑定 但无法从代码中引用它 https github com ytn3rd monodroid bindings tree master JmDNS https
  • Android:适合SystemWindows和换行符干扰bottomSheets

    我发现如果父布局包含android fitsSystemWindows true 当发生与视图相关的操作时 它会干扰我的 BottomSheets 定位 具体来说 我遇到的是 文本视图中的换行符将触发底页偏移系统 通知栏的高度 换行符 fi

随机推荐

  • 在python中使用scrapy执行Javascript函数

    我对 scrapy 我正在废弃一个网站 因为我有一些锚标记 其中包含 href 属性和javascript 提交表单函数 当我单击该 javascript 函数时 将打开一个页面 我需要从中获取数据 我使用了Xpath并找到特定锚标记的 h
  • 简单的子域重定向 PHP

    我的移动应用程序有一个子域 就像http m traffic domain com http m traffic domain com现在我希望我的用户可以通过访问访问他们的页面http m traffic domain com 用户名 h
  • 当我用 menhir 生成解析器时,有没有办法导出更多东西?

    我正在使用 menhir 生成解析器 现在 它从我的 parser mly 文件生成的 parser mli 文件如下所示 The type of tokens type token huge ADT definition goes her
  • 使用 TypeScript 在 Angular 管道中使用 MapToIterable

    尝试在 Angular 中实现管道 在意识到 ngFor 不适用于地图之后 一些研究让我相信未来的功能将会解决这个问题 但与此同时 mapToIterable 管道就是答案 我有以下代码 import Pipe PipeTransform
  • 如何在Android手机中查找应用程序崩溃日志?

    如果任何 Android 应用程序崩溃 则会代表该应用程序生成一些崩溃日志 如何找到此类崩溃日志的位置 我想要 Android 设备内部的崩溃日志 而不是真正使用 Logcat 来查看崩溃日志 在 logcat 堆栈跟踪中 您可以找到异常
  • 我可以使用什么 CSS 来缩放画布以填充其容器而不改变其纵横比?

    我有一个特定尺寸的画布 比如说 300x150 我可以使用什么 CSS 来缩放画布以填充其容器 而不改变其纵横比 并将其水平和垂直居中 以获得缩放后剩余的任何额外空间 我试过这个 box sizing border box moz box
  • Android 4.4.2 中 Google API(x86 系统映像)和 Google API(ARM 系统映像)之间的差异

    我正在关注这个 http developer android com google play services setup html Install http developer android com google play servic
  • 只读内存和堆内存

    AFAIK 在 C 语言中 字符串文字存储在只读存储器中 它实际上存在于硬件上的什么位置 根据我的知识堆在 RAM 上 如果我错了 请纠正我 堆和只读内存有什么不同 它依赖于操作系统吗 这通常是在硬件辅助下完成的 可以告诉硬件的虚拟内存子系
  • 如何防止对我的用node.js编写的http服务器进行DOS攻击?

    使用node js 用于构建可以处理http请求的tcp服务器的net模块 我想防止 ddos 攻击 所以我所做的是这样的 if status numOfCurrentRequests 1 gt MAX NUM OF CONNECTIONS
  • 如何在CSS中创建双底边框

    我想在标题底部创建一个双边框 其中有两条不同粗细的线 其间有 1px 的空间 具体来说 顶线的厚度为 2px 底线的厚度为 1px 这是我想要达到的美学目标的图像示例 其他使用此设计方面的网站 http www rollingstone c
  • MSBuild 使用凭据调用 Powershell

    我正在尝试使用运行 Powershell 命令的 MSBuild 脚本来部署 Windows 服务 MSBuild 脚本部署我需要的文件 PowerShell 脚本将使用以下命令卸载并重新安装 Windows 服务 Invoke Comma
  • 使用参数循环进行量角器测试

    我有一组几乎完全相同的烟幕测试 我想将它们放入循环中并在参数数组中循环 但是 测试是异步运行的 因此循环在测试运行之前完成 这导致测试对第 8 个参数运行 8 次 而不是每个参数运行一次 describe Admin Console Cam
  • AngularJS 中的简单 dom 操作 - 单击按钮,然后将焦点设置到输入元素

    我有这个角度代码 div class element wrapper div class first wrapper div class button element name div div div class second wrappe
  • Android - 尝试添加图像时会创建空白图像

    我使用的是Android Studio 1 5 我正在尝试做一些非常简单的事情 向我的项目添加一个大图像 我将使用它作为我的 MainActivity 的背景 当我右键单击 res gt Add gt Image Asset 并选择 操作栏
  • Google Admin SDK Push API 发送“同步”网络钩子,但仅此而已

    我的应用程序使用推送通知 API 在文档中也称为频道订阅或 Webhooks 和报告 API 来获取有关身份验证令牌的实时更新 每 6 小时 我们的应用程序就会发出一个请求https www googleapis com admin rep
  • 为什么子进程忽略 PATH,我该如何更改它?

    我需要更改 Python 应用程序调用的程序 很遗憾我无法更改 Python 代码 我只能改变调用环境 特别是 PATH 但不幸的是Python的子进程模块似乎忽略了PATH 至少在某些情况下 我怎样才能强迫Python尊重PATH当搜索要
  • 分布式MAKE

    我之前有一个 MAKE 编译过程 大约需要 1 小时才能完成 我使用 j 命令并能够将其减少到 40 分钟 我观察到 CPU 利用率很高 我的导师建议我将作业分配到我们组织可用的不同服务器或机器上 我读过有关 distcc 的内容 但它只能
  • Ruby 数组 - 求对角线之和

    以前没见过这个 但我想知道如何在 Ruby 中找到 2D 数组的两个对角线之和 假设您有一个简单的数组 包含 3 行和 3 列 array 1 2 3 4 5 6 7 8 9 我可以使用以下方法将其分成三组 array each slice
  • Android - 如何知道mapView是否正确加载?

    我在检测我的 Android 地图应用程序中是否加载了 MapView 时遇到了麻烦 在OnCreate方法中 当我分配地图URL时 我想知道是否发生了任何问题 由于我的互联网连接或任何其他问题 例如从 REST 服务加载地图 可能会出现问
  • 如何从服务器下载XML文件并将其保存到SD卡中?

    在我的应用程序中 我尝试从服务器下载 XML 文件并将其存储在 SD 卡中 为此 我使用以下代码 try File root android os Environment getExternalStorageDirectory File d