亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbfwriter.java

?? 實現如何用java讀dbase庫的
?? JAVA
字號:
/*	DBFWriter	Class for defining a DBF structure and addin data to that structure and 	finally writing it to an OutputStream.	This file is part of JavaDBF packege.	author: anil@linuxense.com	license: LGPL (http://www.gnu.org/copyleft/lesser.html)	$Id: DBFWriter.java,v 1.9 2004/03/31 10:57:16 anil Exp $*/package com.linuxense.javadbf;import java.io.*;import java.util.*;/**	An object of this class can create a DBF file.	Create an object, <br>	then define fields by creating DBFField objects and<br>	add them to the DBFWriter object<br>	add records using the addRecord() method and then<br>	call write() method.*/public class DBFWriter extends DBFBase {	/* other class variables */	DBFHeader header;	Vector v_records = new Vector();	int recordCount = 0;	RandomAccessFile raf = null; /* Open and append records to an existing DBF */	boolean appendMode = false;	/**		Creates an empty Object.	*/	public DBFWriter() {		this.header = new DBFHeader();	}	/**	 	Creates a DBFWriter which can append to records to an existing DBF file.		@param dbfFile. The file passed in shouls be a valid DBF file.		@exception Throws DBFException if the passed in file does exist but not a valid DBF file, or if an IO error occurs.	 */	public DBFWriter( File dbfFile) 	throws DBFException {		try {			this.raf = new RandomAccessFile( dbfFile, "rw");			/* before proceeding check whether the passed in File object 			 is an empty/non-existent file or not.			 */			if( !dbfFile.exists() || dbfFile.length() == 0) {				this.header = new DBFHeader();				return;			}			header = new DBFHeader();			this.header.read( raf);			/* position file pointer at the end of the raf */			this.raf.seek( this.raf.length()-1 /* to ignore the END_OF_DATA byte at EoF */);		}		catch( FileNotFoundException e) {			throw new DBFException( "Specified file is not found. " + e.getMessage());		}		catch( IOException e) {			throw new DBFException( e.getMessage() + " while reading header");		}		this.recordCount = this.header.numberOfRecords;	}	/**		Sets fields.	*/	public void setFields( DBFField[] fields)	throws DBFException {		if( this.header.fieldArray != null) {			throw new DBFException( "Fields has already been set");		}		if( fields == null || fields.length == 0) {			throw new DBFException( "Should have at least one field");		}		for( int i=0; i<fields.length; i++) {			if( fields[i] == null) {				throw new DBFException( "Field " + (i+1) + " is null");			}		}		this.header.fieldArray = fields;		try {			if( this.raf != null && this.raf.length() == 0) {				/* 			  	this is a new/non-existent file. So write header before proceeding		 		*/				this.header.write( this.raf);			}		}		catch( IOException e) {			throw new DBFException( "Error accesing file");		}	}	/**		Add a record.	*/	public void addRecord( Object[] values)	throws DBFException {		if( this.header.fieldArray == null) {			throw new DBFException( "Fields should be set before adding records");		}		if( values == null) {			throw new DBFException( "Null cannot be added as row");		}		if( values.length != this.header.fieldArray.length) {			throw new DBFException( "Invalid record. Invalid number of fields in row");		}		for( int i=0; i<this.header.fieldArray.length; i++) {			if( values[i] == null) {				continue;			}			switch( this.header.fieldArray[i].getDataType()) {				case 'C':					if( !(values[i] instanceof String)) {						throw new DBFException( "Invalid value for field " + i);					}					break;				case 'L':					if( !( values[i] instanceof Boolean)) {					  throw new DBFException( "Invalid value for field " + i);					}					break;				case 'N':					if( !( values[i] instanceof Double)) {						throw new DBFException( "Invalid value for field " + i);					}					break;				case 'D':					if( !( values[i] instanceof Date)) {						throw new DBFException( "Invalid value for field " + i);					}					break;				case 'F':					if( !(values[i] instanceof Double)) {						throw new DBFException( "Invalid value for field " + i);					}					break;			}		}		if( this.raf == null) {			v_records.addElement( values);		}		else {			try {							writeRecord( this.raf, values);				this.recordCount++;			}			catch( IOException e) {				throw new DBFException( "Error occured while writing record. " + e.getMessage());			}		}	}	/**		Writes the set data to the OutputStream.	*/	public void write( OutputStream out)	throws DBFException {		try {			if( this.raf == null) {				DataOutputStream outStream = new DataOutputStream( out);				this.header.numberOfRecords = v_records.size();				this.header.write( outStream);				/* Now write all the records */				int t_recCount = v_records.size();				for( int i=0; i<t_recCount; i++) { /* iterate through records */					Object[] t_values = (Object[])v_records.elementAt( i);					writeRecord( outStream, t_values);				}				outStream.write( END_OF_DATA);				outStream.flush();			}			else {				/* everything is written already. just update the header for record count and the END_OF_DATA mark */				this.header.numberOfRecords = this.recordCount;				this.raf.seek( 0);				this.header.write( this.raf);				this.raf.seek( raf.length());				this.raf.writeByte( END_OF_DATA);				this.raf.close();			}		}		catch( IOException e) {			throw new DBFException( e.getMessage());		}	}	public void write()	throws DBFException {		this.write( null);	}	private void writeRecord( DataOutput dataOutput, Object []objectArray) 	throws IOException {		dataOutput.write( (byte)' ');		for( int j=0; j<this.header.fieldArray.length; j++) { /* iterate throught fields */			switch( this.header.fieldArray[j].getDataType()) {				case 'C':					if( objectArray[j] != null) {						String str_value = objectArray[j].toString();							dataOutput.write( Utils.textPadding( str_value, characterSetName, this.header.fieldArray[j].getFieldLength()));					}					else {						dataOutput.write( Utils.textPadding( "", this.characterSetName, this.header.fieldArray[j].getFieldLength()));					}					break;				case 'D':					if( objectArray[j] != null) {						GregorianCalendar calendar = new GregorianCalendar();						calendar.setTime( (Date)objectArray[j]);						StringBuffer t_sb = new StringBuffer();						dataOutput.write( String.valueOf( calendar.get( Calendar.YEAR)).getBytes());						dataOutput.write( Utils.textPadding( String.valueOf( calendar.get( Calendar.MONTH)+1), this.characterSetName, 2, Utils.ALIGN_RIGHT, (byte)'0'));						dataOutput.write( Utils.textPadding( String.valueOf( calendar.get( Calendar.DAY_OF_MONTH)), this.characterSetName, 2, Utils.ALIGN_RIGHT, (byte)'0'));					}					else {						dataOutput.write( "        ".getBytes());					}					break;				case 'F':					if( objectArray[j] != null) {						dataOutput.write( Utils.doubleFormating( (Double)objectArray[j], this.characterSetName, this.header.fieldArray[j].getFieldLength(), this.header.fieldArray[j].getDecimalCount()));					}					else {						dataOutput.write( Utils.textPadding( "?", this.characterSetName, this.header.fieldArray[j].getFieldLength(), Utils.ALIGN_RIGHT));					}					break;				case 'N':					if( objectArray[j] != null) {						dataOutput.write(							Utils.doubleFormating( (Double)objectArray[j], this.characterSetName, this.header.fieldArray[j].getFieldLength(), this.header.fieldArray[j].getDecimalCount()));					}					else {						dataOutput.write( 							Utils.textPadding( "?", this.characterSetName, this.header.fieldArray[j].getFieldLength(), Utils.ALIGN_RIGHT));					}					break;				case 'L':					if( objectArray[j] != null) {						if( (Boolean)objectArray[j] == Boolean.TRUE) {							dataOutput.write( (byte)'T');						}						else {							dataOutput.write((byte)'F');						}					}					else {						dataOutput.write( (byte)'?');					}					break;				case 'M':					break;				default:						throw new DBFException( "Unknown field type " + this.header.fieldArray[j].getDataType());			}		}	/* iterating through the fields */	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产禁国产网站cc| 在线观看日产精品| 日韩一区二区免费高清| 国产精品国产三级国产aⅴ入口| 国产精品热久久久久夜色精品三区 | 不卡视频免费播放| 51久久夜色精品国产麻豆| 首页国产丝袜综合| 色婷婷av一区二区三区大白胸| 亚洲国产裸拍裸体视频在线观看乱了| 成人在线综合网| 久久久久国产一区二区三区四区| 三级在线观看一区二区| 色综合色综合色综合色综合色综合| 久久久蜜臀国产一区二区| 国产精品日日摸夜夜摸av| 天天免费综合色| 美国毛片一区二区| 欧美国产97人人爽人人喊| 国产精品久久久久永久免费观看| 中文字幕一区二区三中文字幕| 性感美女极品91精品| 另类小说图片综合网| 国产日产亚洲精品系列| 国产夫妻精品视频| 91久久精品一区二区三| 日韩av一区二区三区| 4438x亚洲最大成人网| 久久精品男人的天堂| fc2成人免费人成在线观看播放| 制服丝袜亚洲播放| 粉嫩嫩av羞羞动漫久久久| 日韩午夜在线观看视频| 久久国产欧美日韩精品| 五月天丁香久久| 91亚洲精华国产精华精华液| 天堂一区二区在线| 91免费观看视频在线| 亚洲欧美另类小说| 欧美精品视频www在线观看| 欧美日韩国产三级| 国产精品热久久久久夜色精品三区 | 亚洲综合色在线| 日韩视频一区在线观看| 国产91丝袜在线播放九色| 国产一区二区三区观看| 午夜久久电影网| 91精品免费在线| 国产精品久久久久久久久快鸭 | 五月天一区二区| 欧洲av在线精品| 国产精品久99| 日韩欧美视频一区| 制服丝袜在线91| 91蜜桃传媒精品久久久一区二区| 欧美成人精品福利| 亚洲综合另类小说| 欧美国产精品专区| 亚洲国产va精品久久久不卡综合| 欧美韩国日本不卡| 欧美少妇一区二区| 精品久久国产老人久久综合| 91激情在线视频| 欧美日韩久久一区| 亚洲制服欧美中文字幕中文字幕| 欧美国产1区2区| 日韩国产欧美在线观看| 亚洲欧洲一区二区在线播放| 3d成人动漫网站| 国产精品一区免费视频| 久久成人免费网站| 亚洲日本免费电影| 欧美aaaaa成人免费观看视频| 69堂精品视频| 一区二区高清在线| 91精品国产综合久久精品性色| 成熟亚洲日本毛茸茸凸凹| 国产91丝袜在线观看| 日韩av电影一区| 日韩精品中文字幕在线不卡尤物| 成人污污视频在线观看| 日韩电影网1区2区| 精品亚洲porn| 日韩制服丝袜先锋影音| 中文字幕精品一区| 国产成人免费在线视频| 日韩国产成人精品| 久久久久久久久久久黄色| 欧美少妇性性性| 成人免费黄色在线| 欧美理论片在线| 丁香网亚洲国际| 欧洲一区二区三区免费视频| 午夜精品视频一区| 一区二区三区不卡视频在线观看| 婷婷综合久久一区二区三区| 国产精品国产成人国产三级| 一区二区国产盗摄色噜噜| 最近中文字幕一区二区三区| 亚洲精品一卡二卡| 91精品国产综合久久蜜臀| 国产精品无遮挡| 欧美日产国产精品| 在线免费不卡电影| 精品成a人在线观看| 欧美精品久久久久久久久老牛影院 | 人人精品人人爱| 亚洲一级二级在线| 国产精品1024| 国产亚洲精品bt天堂精选| jiyouzz国产精品久久| 精品国产露脸精彩对白 | 久99久精品视频免费观看| 国产真实乱子伦精品视频| 免费欧美在线视频| av色综合久久天堂av综合| 欧美色偷偷大香| 日韩高清一级片| 国产日韩欧美高清在线| 久久草av在线| 亚洲综合精品久久| 青青草国产精品97视觉盛宴| 一区二区三区国产精品| 亚洲高清免费视频| 亚洲欧美日韩国产手机在线 | 久久精品一区二区三区av| 91丨九色丨尤物| 日韩欧美一级精品久久| 丰满少妇久久久久久久| 国产精品 欧美精品| 4hu四虎永久在线影院成人| 精品国产乱码久久久久久蜜臀| 尤物在线观看一区| 亚洲国产另类av| 成人av资源网站| 色婷婷久久综合| 制服丝袜中文字幕亚洲| 久久综合色之久久综合| 三级欧美在线一区| 另类欧美日韩国产在线| 欧美午夜电影网| 欧美成人精品二区三区99精品| 亚洲午夜免费电影| 久久精品国产亚洲aⅴ| 1024精品合集| 丁香桃色午夜亚洲一区二区三区| 欧美夫妻性生活| 亚洲国产高清在线观看视频| 免费看精品久久片| 国产不卡一区视频| 日韩三级精品电影久久久| 97se亚洲国产综合在线| 91影视在线播放| 亚洲欧美日韩国产一区二区三区| 精品久久五月天| 精品午夜久久福利影院| 国产一区三区三区| 99久久精品情趣| 91丨porny丨最新| 久久精品国内一区二区三区| 中文字幕欧美三区| 国产成人精品网址| 亚洲精品在线一区二区| 日韩欧美视频在线| 99re热这里只有精品免费视频 | 久久久久久综合| 日韩毛片在线免费观看| 国产精品白丝在线| 精品一区二区三区av| 91高清视频在线| 欧美一区二区三区视频免费播放 | 日韩在线一区二区三区| 精品国产乱码久久久久久免费| 成人高清av在线| 欧美日韩国产欧美日美国产精品| 精品毛片乱码1区2区3区| 亚洲自拍都市欧美小说| 丝袜亚洲另类丝袜在线| 欧美调教femdomvk| 99久久国产综合精品麻豆| 成人黄色国产精品网站大全在线免费观看| 亚洲欧洲日韩一区二区三区| 欧美一区二区在线不卡| 国产美女精品在线| 亚洲欧美日韩国产综合在线| 欧美美女一区二区三区| 国产传媒日韩欧美成人| 国产精品久久福利| 久久99日本精品| 欧美日韩亚洲另类| 久久天堂av综合合色蜜桃网| 另类小说视频一区二区| 亚洲午夜激情网页| 99久久精品免费看国产| 黄色日韩三级电影| 国产日本欧美一区二区| 久久狠狠亚洲综合| 日韩精品中文字幕一区二区三区| 亚洲精品高清在线| 国产一区二区三区|