Java压缩类库的使用 5.性能检测
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish
)。
在选择压缩、打包算法的时候,不仅仅要选择算法,还需要选择用哪个实现类库,不同的实现类库实现效率不同,默认压缩比率不同。为了测试JDK、Ant、commons-compress在默认情况下的效率,设计了如下程序:(来源:http://blog.csdn.net/inkfish)
100M大小随机字符串文件生成程序:(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.RandomStringUtils;
public class CharFileGener {
public static void main(String[] args) throws IOException {
charGener();
}
private static void charGener() throws IOException {
Writer writer = new BufferedWriter(new FileWriter(new File("D:/TestCompress/txt.txt")),
1024 * 1024 * 5);
int max = 1024 * 1024;
String strs = "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\\QWERTYUIOP{}|asdfghjkl;'\":LKJHGFDSAzxcvbnm,./?><MNBVCXZ";
for (int i = 0; i < max; i++) {
writer.write(RandomStringUtils.random(99, strs));
writer.write("\n");
}
IOUtils.closeQuietly(writer);
}
}
上面的代码用于生成随机的半角字符组成的文本文件,大小为100M(1024*1024*100byte)。(来源:http://blog.csdn.net/inkfish)
性能测试程序:(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
public class TestCompress {
public static void main(String[] args) throws IOException {
File srcFile = new File("D:/TestCompress", "text.txt");
for (int i = 0; i < 3; i++) {//循环测试三遍
doTest(srcFile);
cleanDir(srcFile);
}
}
private static void cleanDir(File srcFile) throws IOException {
FileUtils.deleteDirectory(new Fi
相关文档:
下载地址:
http://www.andykhan.com/jexcelapi/ 当前的最高版本是2.6。
真实下载地址:
http://www.andykhan.com/jexcelapi/download.html
作者的网站上对它的特征有如下描述:
● 支持Excel 95-2000的所有版本
● 生成Excel 2000标准格式
● 支持字体、数字 ......
Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用。这样能够避免恶意随便修改数据,提高数据的可行度。
那么JAVA来实现设置book保护怎么做呢?
查找了几种常见的JAVA操作Excel的一些包,大体结果如下:
1. POI
&nbs ......
java程序内存主要分为了2个部分,包括 stack segment(栈内存)、heap segment(堆内存)。
在分析Java程序内存分配情况时,我们从下面这个经常被使用的例子开始吧。
下面程序将打印什么呢?
Java代码
String s1 = new S ......
JAVA与C++的一个很大区别就是JAVA不需要程序员去分配,释放内存。这在很大程度上减少了程序员的工作量,但或许正因为这个原因我们经常看到一些编程错误。
例1:
从数据库查询出结果list,然后做循环处理。
......
java是一种面向对象的编程语言,怎么理解?
java写的程序都是面向对象的吗?
你可能认为,java生来就是面向对象的。
且看:
package cn.nileader.calculate_OPP;
import java.util.Scanner;
/**
* 这是一个OPP的的计算器(加法和减法)
* @author nileader
* @see http://www.nileader.cn
*/
public cla ......