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

📄 tcubaseitemsstr.java

📁 为公司做的质量考核接口源码,用spring,hibernate,XML实现,对XML接口编程很有帮助
💻 JAVA
字号:
package com.jr81.source.stream;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;

import com.jr81.common.JrUtility;


public class TcuBaseItemsSTR extends Object {
	//private Map Items = new HashMap();
	private Vector Items = new Vector();
	private int Size=0;
	
	public void Clear() {
		for (int i=0;i<GetCount();i++){
			Item(i).Clear();
		}
		Items.clear();
		Size=0;
	}
	
	public void AddItem(TcuBaseItemSTR value) {
		Items.add(value);
		Size+=value.getSize();
	}
	
	public void AddItem(String name,String value) {
		/*TcuBaseItemSTR BaseItem = new TcuBaseItemSTR();
		BaseItem.setName(name.getBytes());
		BaseItem.setValue(value.getBytes());
		BaseItem.setItemTag(0);
		AddItem(BaseItem);*/
		if (value==null){
			AddItem(name,new String("").getBytes(),0);
		}else{
			AddItem(name,value.getBytes(),0);
		}
	}
	
	public void AddItem(String name,boolean value) {
		if (value){
			AddItem(name,"1".getBytes(),0);
		}
		else{
			AddItem(name,"0".getBytes(),0);	
		}
			
	}
	
	public void AddItem(String name,Integer value) {
		AddItem(name,value.toString().getBytes(),0);
	}
	
	public void AddItem(String name,Float value) {
		AddItem(name,value.toString().getBytes(),0);
	}
		
			
	public void AddItem(String name,byte[] value,int ItemTag) {
		TcuBaseItemSTR BaseItem = new TcuBaseItemSTR();
		BaseItem.setName(name.getBytes());
		BaseItem.setValue(value);
		BaseItem.setItemTag(ItemTag);
		AddItem(BaseItem);
	}
	
	public TcuBaseItemSTR Item(String name) {
		for(int i=0;i<Items.size();i++){
			String Name=new String(Item(i).getName());
			//if (Item(i).getName().equals(name.getBytes())){
			if (Name.toUpperCase().equals(name.toUpperCase())){
				return Item(i);				
			}
		}
		return null;
	}
	
	public TcuBaseItemSTR Item(int index) {
		return  (TcuBaseItemSTR) Items.elementAt(index);
	}
	
	public String GetItem(String name){
		TcuBaseItemSTR it= Item(name);
		if (it==null){
			return "";
		}
		
		String value=new String( Item(name).getValue());
		if (value.length()>0){
			return value;
		}
		else
			return "";
	}
	
	public String GetItem(int index){
		String value=new String( Item(index).getValue());
		if (value.length()>0){
			return value;
		}
		else
			return "";
	}
	
	public byte[] GetItemByteArray(String name){
		TcuBaseItemSTR it= Item(name);
		if (it==null){
			return null;
		}
		else{
			return it.getValue();
		}
	}
	
	public boolean GetItemToBoolean(String name){
		if (GetItem(name).equals("1")){
			return true;
		}
		else			
		return false;	
	}
	
	public Integer GetItemToInteger(String name){
		String value=GetItem(name);
		if (value.length()==0){
			return Integer.valueOf(0);
		}else{
			return Integer.valueOf(value);
		}
	}
	
	public Float GetItemToFloat(String name){
		String value=GetItem(name);
		if (value.length()==0){
			return Float.valueOf(0);
		}else{
			return Float.valueOf(value);
		}
	}
				
	public int GetCount() {
		return Items.size();
	}
	
	public boolean DelItem(int value) {
		// TODO 自动生成方法存根
		Size=Size-((TcuBaseItemSTR) Item(value)).getSize();
		Items.remove(value);
		return true;
	}
	
	public ByteArrayOutputStream toStream() throws IOException {
		ByteArrayOutputStream result=new ByteArrayOutputStream(Size+4*GetCount()+4);
		byte[] inLength = new byte[4];
		
		///写入ItemsCount
		inLength = JrUtility.int2bytes(GetCount());
		result.write(inLength,0,4);
		
		for(int i=0;i<Items.size();i++){
			TcuBaseItemSTR BaseItem = (TcuBaseItemSTR)Item(i);			
			
			//写入ItemSize
			inLength = JrUtility.int2bytes(BaseItem.getSize());
			result.write(inLength,0,4);
			
			//写入Item内容
			//result.write(((ByteArrayOutputStream) BaseItem.toStream()).toByteArray(),0,BaseItem.getSize());
			result.write(BaseItem.toByteArray(),0,BaseItem.getSize());
		}		
		return result;
	}
	
	public byte[] toByteArray() throws IOException{
		ByteArrayOutputStream ou=toStream();
		try{
			return ou.toByteArray();
		}finally{
			ou.close();
			ou=null;
			//System.gc();
		}
		//return ba;
		//return ((ByteArrayOutputStream)toStream()).toByteArray();
	}
	
	public boolean fromStream(InputStream value){
		try{
			if (value==null){
				System.out.println("BaseItems fromStream error,Null bytearray");
				return false;
			}
			Clear();
			byte[] inLength = new byte[4];
			int size=0;
			
			value.read(inLength,0,4);
			int count = JrUtility.bytes2int(inLength);
			for (int i=0;i<count;i++){
				value.read(inLength,0,4);
				size = JrUtility.bytes2int(inLength);
				byte[] buffer = new byte[size];
				value.read(buffer,0,size);
				//ByteArrayInputStream in=new ByteArrayInputStream(buffer);
				TcuBaseItemSTR BaseItem =new TcuBaseItemSTR ();
				//BaseItem.fromStream(in);
				BaseItem.fromByteArray(buffer);
				AddItem(BaseItem);
			}
			return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}		
	}
	
	public boolean fromByteArray(byte[] value) throws IOException{
		if (value==null){
			System.out.println("BaseItems fromByteArray error,Null bytearray");
			return false;
		}
		ByteArrayInputStream in=new ByteArrayInputStream(value);
		try{
			return fromStream(in);
		}
		finally
		{
			in.close();
			in=null;
			//System.gc();
		}
	}
	
	public void Assign(TcuBaseItemsSTR value) {
		Clear();
		for (int i=0;i<value.GetCount();i++){
			//TcuBaseItemXML BaseItem = (TcuBaseItemXML)iterator.next();
			TcuBaseItemSTR item=new TcuBaseItemSTR();
			//TcuBaseItemSTR it=value.Item(i);
			item.Assign(value.Item(i));
			AddItem(item);
		}
	}
	
	public static void main(String[] args) throws IOException {
		TcuBaseItemsSTR BaseItems = new TcuBaseItemsSTR();
		TcuBaseItemsSTR BaseItems2 = new TcuBaseItemsSTR();
		/*TcuBaseItem BaseItem = new TcuBaseItem();
		BaseItem.setName("dd");
		BaseItem.setValue("d1");
		BaseItems.AddItem(BaseItem);*/
		BaseItems.AddItem("aaa","aaaa");
		BaseItems.AddItem("bbb","bbbb");
		
		ByteArrayOutputStream out=(ByteArrayOutputStream) BaseItems.toStream();
		
		FileOutputStream fou=new FileOutputStream("C:\\test.txt");
		fou.write(out.toByteArray());
		
		ByteArrayInputStream in=new ByteArrayInputStream(out.toByteArray());
		
		BaseItems2.fromStream(in);
		BaseItems2.AddItem("ccc","cccc");
		ByteArrayOutputStream out2=(ByteArrayOutputStream) BaseItems2.toStream();
		FileOutputStream fou2=new FileOutputStream("C:\\test2.txt");
		fou2.write(out2.toByteArray());
		System.out.println(BaseItems2.GetItem("AAA"));
		//BaseItems.toStream()
		
		/*String test=BaseItems.toString();
		PrintStream out = System.out;
		out.println(test);
		
		String XMLHead="<?xml version='1.0' encoding = 'GB2312'?>";
		BaseItems2.fromString(XMLHead+"<aaaaa>"+test+"</aaaaa>");
		BaseItems2.AddItem("ccc","ccc");
		out.println(BaseItems2.toString());*/
	}

	/**
	 * @return 返回 size。
	 */
	public int getSize() {
		return Size;
	}

	/**
	 * @param size 要设置的 size。
	 */
	public void setSize(int size) {
		Size = size;
	}	
}

⌨️ 快捷键说明

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