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

📄 jsourcecodewizardabstract.java

📁 用免疫遗传算法解决TSP问题
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	/**
	 * 梌偊傜傟偨暥帤楍偺堦晹暘傪庢摼偡傞儊僜僢僪
	 * 2僶僀僩1暥帤偺暥帤偼2暥帤偲偟偰僇僂儞僩偟傑偡丅
	 * Unicode揑側摦嶌偼峴偄傑偣傫丅
	 * 暥帤偑搑拞偱暘抐偝傟傞応崌偼 偦偺暥帤偼徣偒 敿妏嬻敀傪杽傔傑偡丅<BR>
	 * 亂拲堄亃偙偺儊僜僢僪偵偮偄偰偼 JSourceCodeWizard僋儔僗偑嶌惉偡傞傂側宍僜乕僗僐乕僪
	 * 偺堦晹偲偟偰棙梡偝傟傑偡丅偛棟夝偲偛嫤椡偺傎偳 偳偆偧傛傠偟偔偍婅偄偄偨偟傑偡丅<BR>
	 * 
	 *   @param String strInput 擖椡暥帤楍
	 *   @param int iStart 奐巒埵抲 (0僆儕僕儞)
	 *   @param int iLength 庢摼挿偝
	 *   @return String 晹暘暥帤楍
	 */
	public static final String subString(String strInput,int iStart,int iLength)
	{
		if(strInput==null)return null;
		if(iLength<=0)return "";
		try{
			StringReader reader=new StringReader(strInput);
			StringWriter writer=new StringWriter();
			int iTotalLength=0;
			// 僗僞乕僩抧揰傑偱憗憲傝
			for(int iCurrentLength=0;iCurrentLength<iStart;)
			{
				int iRead=reader.read();
				if(iRead<0)
				{
					// 僗僞乕僩抧揰偵撏偔慜偵廔椆
					return "";
				}
				if(iRead>0xff)
				{
					iCurrentLength+=2;
					if(iCurrentLength>=iStart)
					{
						if(iCurrentLength>iStart)
						{
							writer.write(' ');
							iTotalLength++;
						}
						break;
					}
				}
				else
				{
					iCurrentLength+=1;
				}
			}
			// 巜掕挿偝偩偗撉傒偲傝
			for(;iTotalLength<iLength;)
			{
				int iRead=reader.read();
				if(iRead<0)break;
				if(iRead>0xff)
				{
					iTotalLength+=2;
					if(iTotalLength>iLength)
					{
						writer.write(' ');
						break;
					}
				}
				else
				{
					iTotalLength+=1;
				}

				writer.write(iRead);
			}
			writer.flush();
			writer.close();
			return writer.toString();
		}catch(IOException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
			return null;
		}
	}

	/**
	 * 梌偊傜傟偨Node傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
	 * 
	 *   @param Node nodeLook 擖椡僲乕僪
	 */
	public void parse(org.w3c.dom.Node nodeLook)
	{
		org.w3c.dom.NodeList nodelistLook=nodeLook.getChildNodes();
		for(int indexKey=0;indexKey<nodelistLook.getLength();indexKey++)
		{
			org.w3c.dom.Node nodeItemLook=nodelistLook.item(indexKey);
			if(nodeItemLook.getNodeType()!=org.w3c.dom.Node.ELEMENT_NODE)
			{
				continue;
			}

			org.w3c.dom.Element eleItemLook=(org.w3c.dom.Element)nodeItemLook;
			if(eleItemLook.getTagName().equals("channel"))
			{
				f_channel.parse(eleItemLook);
			}
			else if(eleItemLook.getTagName().equals(JSourceCodeWizardField.getWizardShortName()))
			{
				JSourceCodeWizardField genItem=new JSourceCodeWizardField();
				genItem.parse(eleItemLook);
				f_field.add(genItem);
			}
			else if(eleItemLook.getTagName().equals("currentDirectory"))
			{
				setCurrentDirectory((getTextNodeValue(eleItemLook)));
			}
			else
			{
				System.out.println("JSourceCodeWizardAbstract: Unknown element ["+eleItemLook.getTagName()+"]");
			}
		}
	}

	/**
	 * 梌偊傜傟偨XML僼傽僀儖傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
	 * 
	 *   @param File fileXmlFile 擖椡XML僼傽僀儖
	 */
	public void parseXml(File fileXmlFile)
		throws IOException
	{
                InputStream inStream=new BufferedInputStream(new FileInputStream(fileXmlFile));
		try{
	                javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
			javax.xml.transform.dom.DOMResult domResult=new javax.xml.transform.dom.DOMResult();
	                transformer.transform(new javax.xml.transform.stream.StreamSource(inStream),domResult);
			org.w3c.dom.Document document=(org.w3c.dom.Document)domResult.getNode();
			parse(document.getDocumentElement());
		}catch(javax.xml.transform.TransformerException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
		}
		inStream.close();
	}

	/**
	 * 梌偊傜傟偨Element偵僼傿乕儖僪傪彂偒弌偟傑偡
	 * 
	 *   @param Document document 僪僉儏儊儞僩
	 *   @param Element elementParent 恊僲乕僪
	 */
	public void serialize(org.w3c.dom.Document document,org.w3c.dom.Element elementParent)
	{
		org.w3c.dom.Comment commentMySelf=document.createComment("JSourceCodeWizard(abstract class of wizard)");
		if(elementParent!=null)elementParent.appendChild(commentMySelf);
		org.w3c.dom.Element elementMyself=document.createElement("JSourceCodeWizard");
		{
			StringBuffer strbufChannel=new StringBuffer();
			strbufChannel.append("channel(class define)");
			strbufChannel.append(" 宆:JSourceCodeWizardChannel");
			strbufChannel.append(" 僨僼僅儖僩抣:[new JSourceCodeWizardChannel()]");
			org.w3c.dom.Comment commentChannel=document.createComment(strbufChannel.toString());
			elementMyself.appendChild(commentChannel);
		}
		f_channel.serialize(document,elementMyself);
		{
			StringBuffer strbufField=new StringBuffer();
			strbufField.append("field(field define)");
			strbufField.append(" 宆:java.util.ArrayList");
			strbufField.append(" 僨僼僅儖僩抣:[new java.util.ArrayList()]");
			org.w3c.dom.Comment commentField=document.createComment(strbufField.toString());
			elementMyself.appendChild(commentField);
		}
		if(f_field!=null)for(int index=0;index<f_field.size();index++)
		{
			JSourceCodeWizardField itemLook=(JSourceCodeWizardField)f_field.get(index);
			itemLook.serialize(document,elementMyself);
		}
		{
			StringBuffer strbufCurrentDirectory=new StringBuffer();
			strbufCurrentDirectory.append("currentDirectory(processing directory)");
			strbufCurrentDirectory.append(" 宆:String");
			strbufCurrentDirectory.append(" 僨僼僅儖僩抣:[\".\"]");
			org.w3c.dom.Comment commentCurrentDirectory=document.createComment(strbufCurrentDirectory.toString());
			elementMyself.appendChild(commentCurrentDirectory);
		}
		org.w3c.dom.Element elementCurrentDirectory=document.createElement("currentDirectory");
		if(getCurrentDirectory()!=null)elementCurrentDirectory.appendChild(document.createTextNode((getCurrentDirectory())));
		elementMyself.appendChild(elementCurrentDirectory);
		if(elementParent!=null)
		{
			elementParent.appendChild(elementMyself);
		}
		else
		{
			document.appendChild(elementMyself);
		}
	}

	/**
	 * 梌偊傜傟偨XML僼傽僀儖偵彂偒弌偟偟傑偡
	 * 
	 *   @param File fileXmlFile 弌椡XML僼傽僀儖
	 */
	public void serializeXml(File fileXmlFile)
		throws IOException
	{
		org.w3c.dom.Document document=null;
		try{
			javax.xml.parsers.DocumentBuilder documentBuilder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
			document=documentBuilder.newDocument();
		}catch(javax.xml.parsers.ParserConfigurationException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
			throw new IOException(ex.toString());
		}
		serialize(document,null);
                OutputStream outStream=new BufferedOutputStream(new FileOutputStream(fileXmlFile));
		try{
	                javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
	                transformer.setOutputProperty("encoding","Shift_JIS");
	                transformer.setOutputProperty("standalone","yes");
	                transformer.setOutputProperty("indent","yes");
	                transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2");
	                transformer.transform(new javax.xml.transform.dom.DOMSource(document),new javax.xml.transform.stream.StreamResult(outStream));
		}catch(javax.xml.transform.TransformerException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
		}
		outStream.flush();
		outStream.close();
	}

	/**
	 * 梌偊傜傟偨Node偵娷傑傟傞暥帤楍傪庢傝弌偟傑偡
	 * 
	 *   @param Node nodeLook 擖椡僲乕僪
	 */
	public static final String getTextNodeValue(org.w3c.dom.Node nodeLook)
	{
		StringBuffer strbufWrk=new StringBuffer();
		org.w3c.dom.NodeList nodelistItems=nodeLook.getChildNodes();
		if(nodelistItems.getLength()==0)return null;
		for(int indexItem=0;indexItem<nodelistItems.getLength();indexItem++)
		{
			org.w3c.dom.Node nodeText=nodelistItems.item(indexItem);
			if(nodeText.getNodeType()==org.w3c.dom.Node.TEXT_NODE)
			{
				strbufWrk.append(nodeText.getNodeValue());
			}
		}
		return strbufWrk.toString();
	}
	/**
	 * 梌偊傜傟偨Csv暥帤楍傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
	 * 
	 *   @param String strLine 擖椡峴
	 */
	public void parseCsv(String strLine)
	{
		StringReader reader=new StringReader(strLine);
		setCurrentDirectory((wizTsvNextToken(reader)));
	}

	protected String wizCsvNextToken(Reader reader)
	{
		StringWriter writer=new StringWriter();
		try{
			for(;;)
			{
				int iRead=reader.read();
				if(iRead<0)break;
				if(iRead==',')break;
				if(iRead=='\n')break;
				writer.write(iRead);
			}
			writer.flush();
			writer.close();
		}catch(IOException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
		}
		return writer.toString();
	}

	/**
	 * 梌偊傜傟偨Csv僼傽僀儖偵彂偒弌偟偟傑偡
	 * 
	 *   @param File fileFile 弌椡Csv僼傽僀儖
	 */
	public void serializeCsv(Writer writer)
		throws IOException
	{
		writer.write((getCurrentDirectory()));
	}

	/**
	 * 梌偊傜傟偨Csv僼傽僀儖偵彂偒弌偟偟傑偡
	 * 
	 *   @param File fileFile 弌椡Csv僼傽僀儖
	 */
	public void serializeCsv(File fileFile)
		throws IOException
	{
		BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileFile)));
		serializeCsv(writer);
		writer.newLine();
		writer.flush();
		writer.close();
	}

	/**
	 * 梌偊傜傟偨Tsv暥帤楍傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
	 * 
	 *   @param String strLine 擖椡峴
	 */
	public void parseTsv(String strLine)
	{
		StringReader reader=new StringReader(strLine);
		setCurrentDirectory((wizTsvNextToken(reader)));
	}

	protected String wizTsvNextToken(Reader reader)
	{
		StringWriter writer=new StringWriter();
		try{
			for(;;)
			{
				int iRead=reader.read();
				if(iRead<0)break;
				if(iRead=='\t')break;
				if(iRead=='\n')break;
				writer.write(iRead);
			}
			writer.flush();
			writer.close();
		}catch(IOException ex){
			System.out.println(ex.toString());
			ex.printStackTrace();
		}
		return writer.toString();
	}

	/**
	 * 梌偊傜傟偨Tsv僼傽僀儖偵彂偒弌偟偟傑偡
	 * 
	 *   @param File fileFile 弌椡Tsv僼傽僀儖
	 */
	public void serializeTsv(Writer writer)
		throws IOException
	{
		writer.write((getCurrentDirectory()));
	}

	/**
	 * 梌偊傜傟偨Tsv僼傽僀儖偵彂偒弌偟偟傑偡
	 * 
	 *   @param File fileFile 弌椡Tsv僼傽僀儖
	 */
	public void serializeTsv(File fileFile)
		throws IOException
	{
		BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileFile)));
		serializeTsv(writer);
		writer.newLine();
		writer.flush();
		writer.close();
	}

}

⌨️ 快捷键说明

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