你的位置:首页 > 操作系统

[操作系统]Android GZIP压缩IO流,优化APP数据传输(一)


 

  我是小搬运工,今天讲解流的压缩传输 

在我们安卓开发中,通常伴随着大量的数据传输,在此,楼主给出一个简单的压缩流的数据进行操作。

public void GZIPCpf(String path) {
/*
* 描述
* 压缩测试
* 通过压缩的方式实现对java数据流的读取
* java压缩类属于inputstream和outputstream结构的一部分
* */
/*
* 压缩类的功能
* 1、CheakedInputStream GetCheckSum()为任何inputstream产生效验和(不仅仅只是解压)
* checkedoutputstream GetCheckSum()为任何outputstream产生效验和(不仅仅只是解压)
* DeflaterOutputStream,用于压缩类的基础类
* ZIPOutputStream 一个DeflaterOutputStream,将数据压缩成zip文件格式
* GZIPOutputStream 一个DeflaterOutputStream,将数据压缩成Gzip文件格式
* InflaterInputStream 用于解压类的基础类
* ZIPInputStream 一个deflaterinputStream,解压用zip格式保存的数据
* GZIPInputStream 一个deflaterinputStream,解压用gzip保存的数据
*
* */

//用GZIP进行简单压缩,适用于单个数据流的压缩
try {
//写
File f = new File(path);
BufferedReader br = new BufferedReader(new FileReader(path));
BufferedOutputStream bOs = new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(f)));
int c;
while ((c=br.read())!=-1) {
bOs.write(c);
System.out.println(c);
}
br.close();
bOs.close();

//读
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new GZIPInputStream(
new FileInputStream(f)
)
)
);
String text;
while ((text=reader.readLine())!=null) {
System.out.println(text);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

大家可以根据这个简单的案例做出更加优秀的流传输-v-!!!嘿嘿