tinyline.java

来自「j2me编写的解压缩程序!已经试过了」· Java 代码 · 共 83 行

JAVA
83
字号
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

import com.tinyline.util.*;

public class TinyLine extends MIDlet
{
	protected void startApp() throws MIDletStateChangeException
	{
		Runtime runtime=Runtime.getRuntime();
		doGC();
		long memory1=runtime.totalMemory(),memory2=0,memory3=0,memory4=0;
		long free1=runtime.freeMemory(),free2=0,free3=0,free4=0,time1=0,time10=0;
		try
		{
			InputStream is=getClass().getResourceAsStream("/rfc1951.txt.gz");
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			int i=-1;
			while ((i=is.read())!=-1) baos.write(i);
			is.close();
			ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray());
			doGC();
			//
			free2=runtime.freeMemory();
			memory2=runtime.totalMemory();
			int readed=0;
			GZIPInputStream gis=new GZIPInputStream(bais);
			time1=System.currentTimeMillis();
			byte data[]=new byte[37897];
			while (readed<data.length) readed+=gis.read(data,readed,data.length-readed);
			gis.close();
			time1=System.currentTimeMillis()-time1;
			free3=runtime.freeMemory();
			memory3=runtime.totalMemory();
			//
			doGC();
			free4=runtime.freeMemory();
			memory4=runtime.totalMemory();
			GZIPInputStream gis10[]=new GZIPInputStream[10];
			for (i=0;i<10;i++) gis10[i]=new GZIPInputStream(bais);
			time10=System.currentTimeMillis();
			for (i=0;i<10;i++)
			{
				gis=gis10[i];
				bais.reset();
				readed=0;
				data=new byte[37897];
				while (readed<data.length) readed+=gis.read(data,readed,data.length-readed);
				gis.close();
			}
			time10=System.currentTimeMillis()-time10;
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
		Form form=new Form("results");
		form.append("\n1: "+free1+"/"+memory1);
		form.append("\n2: "+free2+"/"+memory2);
		form.append("\n3: "+free3+"/"+memory3);
		form.append("\n4: "+free4+"/"+memory4);
		form.append("\nmemory: "+(free2-free3-37897));
		form.append("\ntime 1: "+time1);
		form.append("\ntime 10: "+time10);
		Display.getDisplay(this).setCurrent(form);
	}

	protected void pauseApp()
	{
	}

	protected void destroyApp(boolean b) throws MIDletStateChangeException
	{
	}

	private void doGC()
	{
		long time=System.currentTimeMillis();
		while (System.currentTimeMillis()-time<2000) System.gc();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?