当前位置: 首页 > 面试题库 >

如何在Java中使用HttpClient检索二进制文件?

闻人宝
2023-03-14
问题内容

目前,我可以按如下方式检索文本页面

    HttpClient client = new DefaultHttpClient();
    HttpGet get = new HttpGet(
            "http://google.com");

    try {


        HttpResponse response = client.execute(get);
        BufferedReader rd = new BufferedReader(new InputStreamReader(
                response.getEntity().getContent()));

        String line = "";
        while ((line = rd.readLine()) != null) {
            System.out.println(line);


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

假设get以二进制文件为目标。如何将其正确保存到磁盘?


问题答案:

只是不要通过Reader-从中读取数据InputStream并将其写入OutputStream

// Using Guava (guava-libraries.googlecode.com)
InputStream data = response.getEntity().getContent();
try {
    OutputStream output = new FileOutputStream(filename);
    try {
        ByteStreams.copy(data, output);
    } finally {
        Closeables.closeQuietly(output);
    }
} finally {
}


 类似资料:
  • 问题内容: 我必须使用Java在一组二进制文件中搜索一组字节。 示例:我在二进制文件中搜索字节序列(以十六进制表示)。我将如何在Java中执行此操作?是否有内置方法,例如二进制文件? 问题答案: 不,没有内置方法可以做到这一点。但是,直接从此处复制(对原始代码有两个修复):

  • 我正在尝试将多个已排序的列表合并到一个树集中。。然后我考虑在树集上应用二进制搜索算法,以O(logn)的时间复杂度检索元素。。 下面是我的代码,我在其中一个方法中传递列表列表,并将它们组合成以避免重复...所有列表中的排序- 首先,这是将多个排序列表合并到树集的正确方法吗?有没有直接的方法可以有效地合并TreeSet中的多个排序列表 或者,与我目前使用的数据结构相比,我更适合使用另一种数据结构?

  • 问题内容: 我从事Web编程已经有几年了,自那时以来,我还没有为桌面应用程序做任何编程,而且我已经忘记了很多事情。如果这太简单,请耐心等待。 现在我有这种情况: 我正在尝试将一些散列字存储在文件中。我想我应该为此使用二进制文件(如果我错了,请纠正我)。但是我不知道如何将单词写到文件中。我尝试了很多方法,但是当我读回文件并尝试解密单词时,我得到了。 有谁知道如何将单词写到文件中? PS:我使用以下代

  • 问题内容: 我在将这两种算法结合在一起时遇到麻烦。我被要求修改以返回将元素插入数组的索引。然后有人要求我实现一个使用my 对随机生成的数组进行排序的。 我按照预期的方式工作,每当我单独测试它时都返回正确的索引。我写信是为了了解它是如何工作的,并使其也能工作。一旦将两者结合在一起,它就会崩溃。我知道我在一起实施起来不正确,但是我不确定问题出在哪里。 这是我得到的: 我在运行它时得到的返回值是。有什么

  • 问题内容: 使用带有角的ResponseEntity下载任何文件不起作用 我需要在客户端使用angular下载文件,该文件可以具有pdf或excel或image或txt的任何格式…我的方法仅适用于txt文件,但给我excel和image的失败格式,对于pdf,它会给出一个空的pdf。 所以在我的控制器中,这里是调用service方法的函数: 而我的service.js具有: 我的服务方法是这样的:

  • 问题内容: 为了将二进制文件上传到URL,建议使用本指南。但是,该文件不在目录中,而是存储在MySql db的BLOB字段中。BLOB字段在JPA中映射为属性: 我以这种方式稍微修改了指南中的代码: 我没有使用分块流。使用的标头是: 主机正确接收了所有标头。它还接收上载的文件,但不幸的是,它抱怨该文件不可读,并且断言所接收文件的大小比我的代码输出的大小大37个字节。 我对流,连接和byte []的