- 浏览: 50075 次
- 性别:
- 来自: 青岛
最新评论
上篇文章介绍和如何在java中将数据封装成flash可以直接读取的amf格式,amf虽然已经“压缩”过了(相对其他xml、json等,由于基于二进制而且比较少冗余数据,体积会小很多)。
但是还可以进一步压缩的,由于as3的bytearray支持compress和uncompress。所以我们可以在Java端将数据压缩,然后在flash端读取再解压缩,这样数据在传输过程中又会小很多。
下面就介绍使用方法,基于前篇文章的范例:
服务端:
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.Amf3Output;
import flex.messaging.log.Log;
import flex.messaging.messages.Message;
public class Test {
/**
* @param args
*/
public static void main(String[] args)
{
SerializationContext serializationContext=new SerializationContext();
Amf3Output amfOut = new Amf3Output(serializationContext);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
DataOutputStream dataOutStream = new DataOutputStream(outStream);
amfOut.setOutputStream(dataOutStream);
HashMap map=new HashMap();
Double[] arr=new Double[10000];
for(int index=0;indexmessageBytes=compressBytes(messageBytes); //将数据进行压缩
System.out.println("OK");
}catch(Exception e)
{
System.out.println("error :" + e);
}
}
private static int cachesize = 1024;
private static Inflater decompresser = new Inflater();
private static Deflater compresser = new Deflater();
public static byte[] compressBytes(byte input[])
{
compresser.reset();
compresser.setInput(input);
compresser.finish();
byte output[] = new byte[0];
ByteArrayOutputStream o = new ByteArrayOutputStream(input.length);
try
{
byte[] buf = new byte[cachesize];
int got;
while (!compresser.finished())
{
got = compresser.deflate(buf);
o.write(buf, 0, got);
}
output = o.toByteArray();
} finally
{
try
{
o.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
return output;
}
public static byte[] decompressBytes(byte input[])
{
byte output[] = new byte[0];
decompresser.reset();
decompresser.setInput(input);
ByteArrayOutputStream o = new ByteArrayOutputStream(input.length);
try
{
byte[] buf = new byte[cachesize];
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/2938.html
发表评论
-
FLV播放器汇总
2010-04-10 11:54 568http://www.dengjie.com/weblog/c ... -
Flash Media Server 起步(9)在线列表
2010-04-10 11:54 560学了这么多,智商跟我差不多的,概念应该都搞混了 学了就要用 ... -
Flash Media Server 起步(9)在线列表
2010-04-10 11:54 601学了这么多,智商跟我差不多的,概念应该都搞混了 学了就要用 ... -
Flash Media Server 起步(10)中文编码问题
2010-04-10 11:54 893是一个郁闷我一段时间的问题才想到了答案。。。话说曾经在公司做了 ... -
Flash Media Server 起步(10)中文编码问题
2010-04-10 11:53 525是一个郁闷我一段时间的问题才想到了答案。。。话说曾经在公司做了 ... -
彻底接触AS3视觉元件架构
2010-04-09 13:24 643DisplayObject,直译为视 ... -
彻底接触AS3视觉元件架构
2010-04-09 13:24 727DisplayObject,直译为视 ... -
不够50行代码的AS3歌词显示
2010-04-09 13:24 888引用内容 该文章为Demo用途,请见谅… 该文章来自猫粮的bl ... -
不够50行代码的AS3歌词显示
2010-04-09 13:24 921引用内容 该文章为Demo用途,请见谅… 该文章来自猫粮的bl ... -
AS3写的web 2.0 风格
2010-04-09 13:23 592在往上逛的时候发现 一篇日志 ,用 AS3 写出了 Web 2 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 10:27 563很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 10:27 618[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
AS3.0中的位图扭曲变形
2010-04-09 10:27 1433DisplacementMapFilter 类使用指定的 Bi ... -
AS3.0中的位图扭曲变形
2010-04-09 10:27 1299DisplacementMapFilter 类使用指定的 Bi ... -
[JS]FlashUpload上传模块
2010-04-09 10:26 1166[AS3][JS]FlashUpload上传模块 P.S.F ... -
flash打造碧海浪涌海鸥飞美丽动画
2010-04-08 10:47 642文中我们用flash绘制一幅好看的动画场景:碧海、蓝天、白云、 ... -
flash制作飘落的红叶视觉动画
2010-04-08 10:47 628接着"蝶恋花"的练习, 我们举一反三再来学 ... -
flash制作飘落的红叶视觉动画
2010-04-08 10:47 595接着"蝶恋花"的练习, 我们举一反三再来学 ... -
漫画绘制技法大放送(上)
2010-04-08 10:46 573网络收集整理(jundark) [1b]一、人体基本结构[/1 ... -
flash动画形变讨论二:低头
2010-04-08 10:46 504上次说了基本的形变,现在说下提示点,提示点是控制图形变化的基本 ...
相关推荐
java解压zlib和压缩zlib的jar
zlib压缩解压缩工具,包含源代码,拖拽文件直接压缩解压缩
ZLIB 解压缩代码移植到STM上
Zlib压缩解压工具,第一次用请先运行reg.bat注册组件
zlib库解压缩
由于项目需求,需要在C#中压缩,然后在java里解压缩,或者倒过来,在Java里压缩,C#里解压缩,以下代码经测试验证通过。 关键技术点和体会: 压缩的结果采用Base64编码,方便在Java端或者C#端打印出来调试,也方便...
基于Zlib压缩率的测试,包含压缩比,压缩时间,cpu占用率,压缩耗时
Zlib主要用在上位机,因为无论是Windows、Linux、MAC都有足够的内存,单片机RAM非常小,源码中MAX_WBITS默认是15,需要两个32k才能正常工作,compress2也只能实现一次数据传入压缩。都不适合单片机使用。我在移植时...
ZLIB数据压缩算法源码ZLIB数据压缩算法源码ZLIB数据压缩算法源码ZLIB数据压缩算法源码
基于ZLIB压缩库的数据或文件的压缩与解压缩
zlib 源码分析 对Huffman tree, lz77基础进行了深入讲解 对zlib的实现思路有深度的分析
用zlib1.dll实现压缩解压缩,可用于较大文件的网络压缩传输,提高传输效率
J2ME环境下基于ZLIB的数据压缩与解压缩.pdf
MsgBox "解压缩前字节数:" & (UBound(unpacked_bytes) - LBound(unpacked_bytes) + 1) Call UnPackStream(unpacked_bytes) MsgBox "解压缩后字节数:" & LenB(unpacked_bytes) str = unpacked_bytes 'StrConv...
zlib.dll和一个压缩解压缩的类模块。
VB中需要进行解压缩ZIP文件时,如果调用外置的winzip或者winrar始终不是很保险的做法。使用本程序中的模块及源码可以完美的解决这个问题。
zlib压缩算法.zip
基于zlib封装的压缩解压缩lib库,下载包中含lib库源码及demo源码。支持文件、文件夹解压与压缩。编译环境VS2013。
zlib 压缩算法示例zlib 压缩算法示例zlib 压缩算法示例
自写C++ 基于ZLIB压缩库的数据或文件的压缩与解压缩小程序.zip