⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsjar.java

📁 一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。
💻 JAVA
字号:
package jp.co.sjts.gsession.tools.archive;

import java.io.File;
import java.io.FileInputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Vector;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;

public class GSJar {

	private String dirname = null;
	private String jarname = null;
	private String pathname = null;

	public GSJar(String dirname,String jarname,String pathname) {
		this.dirname = dirname;
		this.jarname = jarname;
		this.pathname = pathname;
	}

	public GSJar(File dir,File jar,File path) {
		this.dirname = dir.getPath();
		this.jarname = jar.getPath();
		this.pathname = path.getPath();
	}

	public void write() throws IOException,Exception {
		try {
			byte[] buf = new byte[1024*8];
			Vector vec = new Vector();

			if(dirname.lastIndexOf(File.separator) == dirname.length() - 1)
				dirname = dirname.substring(0,dirname.length() - 1);

			FileDetect top = new FileDetect( new File( dirname ));
			top.path = dirname;
			top.getfile(vec);

			int length = dirname.length();

			FileOutputStream f = new FileOutputStream(pathname + jarname);

			ByteArrayOutputStream bao = new ByteArrayOutputStream();
			JarOutputStream out = new JarOutputStream(new BufferedOutputStream(f));
		
			for(int i=0; i<vec.size(); i++) {
				bao.reset();
				BufferedInputStream bis = new BufferedInputStream(new FileInputStream((String)vec.get(i)));

				int result;
				do {
					result = bis.read(buf,0,buf.length);
					if(result != -1)
						bao.write(buf,0,result);
				}while (result == buf.length);

				String o = (dirname.substring(dirname.lastIndexOf(File.separator) + 1,dirname.length()) + ((String)vec.get(i)).substring(length));
				out.putNextEntry(new JarEntry(o));

				byte[] data = bao.toByteArray();
				out.write(data);
				bis.close();
			}
			out.close();
		}
		catch( IOException ie ) {
			throw new IOException(ie.toString());
		}
		catch( Exception e ) {
			throw new Exception(e.toString());
		}
	}
}

⌨️ 快捷键说明

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