http://stackoverflow.com/questions/401748/corrupt-file-when-using-java-to-download-file
错误代码
URL targetUrl = new URL(urlForFile);
InputStream content = (InputStream)targetUrl.getContent();
BufferedInputStream buffered = new BufferedInputStream(content);
File savedFile = File.createTempFile("temp",".dat");
FileOutputStream fos = new FileOutputStream(savedFile);
int letter;
while((letter = buffered.read()) != -1)
fos.write(letter);
fos.close();
三大问题:
- You're not just treating the input as bytes,未彻底二进制处理
- You're needlessly pulling the entire object into memory at once,性能考虑
- You're doing multiple method calls for every single byte read and written -- use the array based read/write!,性能考虑
Here's a redo,经过验证的正确处理图片的代码。:
URL targetUrl = new URL(urlForFile);
InputStream is = targetUrl.getInputStream();
File savedFile = File.createTempFile("temp",".dat");
FileOutputStream fos = new FileOutputStream(savedFile);
int count;
byte[] buff = new byte[16 * 1024];
while((count = is.read(buff)) != -1) {
fos.write(buff, 0, count);
}
fos.close();
content.close();
分享到:
相关推荐
标题中的“在Java与C++间应用Activemq”指的是使用Apache ActiveMQ这一开源消息代理在Java和C++编程语言之间构建通信桥梁。ActiveMQ是Java Message Service (JMS) 的实现,允许分布式系统中的组件通过消息传递进行...
**ActiveMQ配置文件详解** Apache ActiveMQ 是一个开源的消息中间件,它实现了多种消息协议,如JMS(Java Message Service)和AMQP(Advanced Message Queuing Protocol),并且广泛应用于分布式系统中,提供可靠的...
- 在ActiveMQ官网下载Windows版本的ActiveMQ安装包。 - 下载完成后解压缩文件。 - 使用管理员权限运行`activemq.bat`文件来启动ActiveMQ服务,但需要注意的是,关闭该窗口会导致服务停止。 - 可以通过运行`...
在与ActiveMQ集成时,Uploadify的服务器端处理脚本需要与ActiveMQ进行交互,通常是发送一个包含文件信息的消息到ActiveMQ队列或主题。 2. **ActiveMQ配置**:在ActiveMQ中,我们需要创建一个特定的队列或主题来接收...
在测试ActiveMQ时,通常会编写Java程序来模拟生产者和消费者。生产者负责创建消息并将其发送到ActiveMQ服务器,而消费者则负责监听并处理来自服务器的消息。这通常涉及以下步骤: 1. 添加ActiveMQ依赖:在项目中...
在这个"activeMQ的java简单实例.zip"压缩包中,我们可能找到了一个简单的Java项目,用于演示如何在Java应用中集成和使用ActiveMQ。以下是一些关于ActiveMQ和Java集成的关键知识点: 1. **ActiveMQ安装与配置**:...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循JMS(Java消息服务)规范,用于在分布式系统中提供高效、可靠的消息传递。在这个Java项目中,包含了使用Java操作ActiveMQ的代码示例和所需的jar包,可以...
**标题:“JMS 使用 ActiveMQ 传送文件”** 在IT领域,Java消息服务(Java Message Service,简称JMS)是一种标准API,它允许应用程序创建、发送、接收和读取消息。这种技术常用于异步通信,尤其是在分布式系统中,...
Java中间件领域的ActiveMQ是一款由Apache开发的开源消息中间件,它为企业级应用提供高效、可扩展、稳定且安全的消息通信服务。ActiveMQ的核心目标是实现标准的、面向消息的集成,支持多语言环境,确保不同平台之间的...
【标题】"activemq-demo" 是一个基于Spring框架与Apache ActiveMQ集成的示例项目,旨在展示如何在实际应用中构建一个高效、可靠的消息传递系统。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它遵循多种消息...
在深入探讨其具体内容之前,我们首先需要了解ActiveMQ的基本概念以及它与Java开发环境的关系。 ActiveMQ作为一款消息中间件,主要负责在分布式系统中传递消息,实现应用程序间的解耦。它支持多种协议,包括开放的...
在本文中,我们将深入探讨ActiveMQ 5.10版本的下载与交互示例,以及如何通过`Publisher.java`和`Customer.java`这两个文件进行消息的发送和接收。 首先,你需要从官方网站或可靠的源下载ActiveMQ 5.10.1的安装包。...
6. **持久化**:ActiveMQ支持多种持久化机制,包括本地文件系统、JDBC数据库和LevelDB,确保在服务重启或故障后仍能保留消息。 7. **高可用性**:通过集群和复制策略,ActiveMQ可以实现高可用性和负载均衡。多个...
在“ftpSever\derby\ActiveMQ”这个场景中,我们可以想象这样的工作流程:用户通过FTP Server上传文件,FTP Server接收到文件后,可以调用后台的Java服务来处理这些文件。这个Java服务可能连接到Derby数据库,将文件...
java springboot整合activemq工程 #activemq配置 #默认情况下activemq提供的是queue模式 true是可以使用topic,false是仅使用queue模式 spring.jms.pub-sub-domain: true # 设置连接的activemq服务器 spring....
描述中提到"启动要求jdk版本8+", 这意味着在运行Apache ActiveMQ 5.16.5之前,你需要确保你的系统上安装了Java Development Kit(JDK)的至少8.0版本。JDK是Java程序开发和运行的基础,ActiveMQ作为Java应用程序,...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java平台并支持多种协议,如OpenWire、AMQP、STOMP、XMPP等。ActiveMQ 5是其一个重要的版本,提供了高度可扩展性和可靠性,广泛应用于分布式系统中的...
在使用ActiveMQ时,了解以下几个关键知识点是至关重要的: 1. **Java Message Service (JMS)**:JMS是一种API,用于在不同的应用程序之间通过消息传递进行通信。它定义了生产、存储、消费和传输消息的标准接口,...
在IT行业中,Apache ActiveMQ和Spring框架的整合是企业级应用中常见的消息中间件解决方案。ActiveMQ是Apache软件基金会开发的一款开源、高性能、跨平台的消息代理,它支持多种消息协议,如OpenWire、AMQP、STOMP等。...
Apache ActiveMQ是开源社区中最流行的Java消息代理,也是企业级消息中间件(Message Broker)的首选之一。在最新的稳定版5.15.0中,它提供了可靠的消息传递功能,适用于分布式应用程序之间的通信,实现了异步处理、...