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

📄 gscsvwriter.java

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

import java.io.File;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;

/*
 * <p>GSCsvWriter.java
 *
 * @author Junichi K <kaneuchi@sjts.co.jp>
 */

public class GSCsvWriter {

	private String enc = "EUCJIS";
	private String filename = null;
	private String record;
	private ArrayList records;
	private OutputStream os;

	public GSCsvWriter(String filename, String[] elementnames) {
		records = new ArrayList();

		if(elementnames.length > 0) {
			record = GSCsvEncode.encString(elementnames[0]);

			for(int i=1; i < elementnames.length; i++) {
				record += "," + GSCsvEncode.encString(elementnames[i]);
			}

			records.add(record);
		}
		this.filename = filename;
		record = null;
	}

	public GSCsvWriter(OutputStream os, String[] elementnames) {
		records = new ArrayList();

		if(elementnames.length > 0) {
			record = GSCsvEncode.encString(elementnames[0]);

			for(int i=1; i < elementnames.length; i++) {
				record += "," + GSCsvEncode.encString(elementnames[i]);
			}

			records.add(record);
		}
		this.os = os;
		record = null;
	}

	private File GetLockFile()
	{
		String buf = GetFile().getPath()+".Lock";
		return new File(buf);
	}

	public void setEncode(String enc)
	{
		this.enc = enc;
	}

	public void Lock() throws GSException
	{
		while(GetLockFile().exists()){
			try	{
				Thread.sleep(100);
			}catch(InterruptedException e){
			}
		}

		GetLockFile().mkdir();
	}

	public void Unlock() throws GSException
	{
		GetLockFile().delete();
	}

	synchronized protected File GetFile() {
		return new File(filename);
	}

	public synchronized void addRecord(String element) {
		if(record == null)
			record = GSCsvEncode.encString(element);
		else
			record += "," + GSCsvEncode.encString(element);
	}

	public synchronized void setRecord() {
		records.add(record);
		record = null;
	}

	synchronized protected void Write(PrintWriter pw) {
		for(int i=0; i < records.size(); i++) {
			pw.println(records.get(i));
		}
	}

	public final synchronized void Save() throws GSException {
		try {
			OutputStreamWriter osw = null;
			if(filename != null)
				osw = new OutputStreamWriter( new FileOutputStream(GetFile()),enc);
			else
				osw = new OutputStreamWriter(os,enc);

			PrintWriter pw = new PrintWriter(osw);

			Write(pw);

			pw.flush();
			pw.close();
	//	} catch(GSException e) {
	//		throw new GSException(e.toString(),e);
		} catch(IOException e) {
			throw new GSException("IO僄儔乕",e);
		}
	}

}

⌨️ 快捷键说明

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