l测试解析通过Q注意代码如?/div>
package com.dmis.mina.dx3;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.util.ArrayList;
import java.util.List;
import org.apache.mina.core.buffer.IoBuffer;
/**
* IoBuffer试
*
* @author jrunner
*/
public class Test03 {
public static void main(String[] args) throws Exception {
System.out.println("W一步:(x)构徏SmsObject对象");
List fileInfos = new ArrayList();
FileInfo f = new FileInfo();
File file = new File("c:\\test.txt");
f.setContent(file);
f.setFileName(file.getName());
f.setFileNameLength(f.getFileName().length());
f.setContentLength((int) file.length());
fileInfos.add(f);
f = new FileInfo();
file = new File("c:\\FeiQ.exe");
f.setContent(file);
f.setFileName(file.getName());
f.setFileNameLength(f.getFileName().length());
f.setContentLength((int) file.length());
fileInfos.add(f);
SmsObject sms = new SmsObject();
sms.setSender("158010122x");
sms.setReceiver("188696999x");
sms.setMessage("你好啊!");
sms.setFileInfos(fileInfos);
System.out.println("=========================================================");
System.out.println("W二步:(x)对象设|到IoBuffer?);
Charset cs = Charset.forName("UTF-8");
CharsetDecoder cd = cs.newDecoder();
CharsetEncoder ce = cs.newEncoder();
IoBuffer buffer = IoBuffer.allocate(100).setAutoExpand(true);
buffer.putString("http://jrunner.blog.51cto.com", ce);// 状?/div>
buffer.putString(sms.getSender(), ce);// 发送?/div>
buffer.putString(sms.getReceiver(), ce);// 接受?/div>
buffer.putString(sms.getMessage(), ce);// 内容
buffer.putLong(89898989989898L);
for (int i = 0; i < sms.getFileInfos().size(); i++) {
FileInfo info = sms.getFileInfos().get(i);
buffer.putInt(info.getFileNameLength());// 讄文g名长?/div>
buffer.putInt(info.getContentLength());// 讄文g大小
buffer.putString(info.getFileName(), ce);// 讄文g?/div>
buffer.put(inputStreamToByte(new FileInputStream(info.getContent())));// 讄文g内容
}
System.out.println("W三步:(x)从IoBuffer中将对象解析出来");
buffer.flip();
System.out.println(buffer.limit());
System.out.println(buffer.getString("http://jrunner.blog.51cto.com".getBytes().length+sms.getSender().getBytes().length+sms.getReceiver().getBytes().length + sms.getMessage().length() * 3, cd));
System.out.println(buffer.getLong());
System.out.println("------------------");
for (int i = 0; i < sms.getFileInfos().size(); i++) {
System.out.println("解析文g?..");
int L1 = buffer.getInt();// 文g名称长度
System.out.println("File Name LengthQ? + L1);
int L2 = buffer.getInt();// 文g内容长度
System.out.println("File Content LengthQ? + L2);
String fileName = buffer.getString(L1, cd);
System.out.println("FileNameQ? + fileName);
byte[] data = new byte[L2];
int k = 0;
while (buffer.hasRemaining()) {
data[k] = buffer.get();
k++;
if (k == L2) {
k = 0;
break;
}
}
File fs = new File("d:\\002_" + fileName);
OutputStream out = new FileOutputStream(fs);
out.write(data);
out.flush();
out.close();
}
}
public static byte[] inputStreamToByte(InputStream inStream) throws IOException {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
int rc;
while ((rc = inStream.read()) != -1) {
swapStream.write(rc);
}
byte[] in2b = swapStream.toByteArray();
return in2b;
}
}
======================================================
public class FileInfo {
private File content;
private String fileName;
private int contentLength;
private int fileNameLength;
}
public class SmsObject {
private String sender;// 短信发送?/div>
private String receiver;// 短信接受?/div>
private String message;// 短信内容
private List<FileInfo> fileInfos;
}

]]>
- java数据写入到txt文g中(txt有固定的格式Q?/title>http://www.aygfsteel.com/jialisoft/archive/2013/05/02/398648.html你爸是李?/dc:creator>你爸是李?/author>Thu, 02 May 2013 02:08:00 GMThttp://www.aygfsteel.com/jialisoft/archive/2013/05/02/398648.htmlhttp://www.aygfsteel.com/jialisoft/comments/398648.htmlhttp://www.aygfsteel.com/jialisoft/archive/2013/05/02/398648.html#Feedback0http://www.aygfsteel.com/jialisoft/comments/commentRss/398648.htmlhttp://www.aygfsteel.com/jialisoft/services/trackbacks/398648.htmljava数据写入到txt文g中,q个应该对于学过java I/O的h来说是很单的事情了,但是如果要将数据以固定的格式写入到txt文g中,需要一定的技巧了?/p>
q里举个单的例子Q以供参考:(x)
比如我要数据写成下面的样子Q?/p>
1 | 2 | 3 | 4
5 | 6 | 8 | 9
也许看v来很单的Q因为每个数据所代表的长度是不一L(fng)Q也有可能编码不一P所有在你看来很单的事情׃应那么容易实C。必要每一个竖U和他下面的竖线是对其的?/p>
q里׃再将写数据的q程提出来了Q重Ҏ(gu)让每一列的数据都能有一个同L(fng)宽度Q?/p>
- public String formatStr(String str, int length) {
- str = " "+str;
- int strLen = str.getBytes().length;
- if (strLen < length) {
- int temp = length - strLen;
- for (int i = 0; i < temp; i++) {
- str += " ";
- }
- }
- return str ;
- }
先讲解一个这个方法的作用Q对于参数str而言Q如果他的字节长度小于参数l(f)ength的话Q就用空D齐?/span>q样做,有个问题Q就是怎么定length的长度ؓ(f)多少合适呢Q?/p>
如果数据是从数据库中查找出来的,那么取数据库中q个字段的最大长度即可。如果是从文件中d的,那么最好就是遍历一下整个文Ӟ从中获取每个字段的最大长度?/p>
最后将Ҏ(gu)q回的str用输出流写入到文件中Q换行的话用out.write(lineSeparator)卛_?nbsp;

]]> - mootools 中empty()和destroy()区别http://www.aygfsteel.com/jialisoft/archive/2013/04/27/398493.html你爸是李?/dc:creator>你爸是李?/author>Sat, 27 Apr 2013 03:18:00 GMThttp://www.aygfsteel.com/jialisoft/archive/2013/04/27/398493.htmlhttp://www.aygfsteel.com/jialisoft/comments/398493.htmlhttp://www.aygfsteel.com/jialisoft/archive/2013/04/27/398493.html#Feedback0http://www.aygfsteel.com/jialisoft/comments/commentRss/398493.htmlhttp://www.aygfsteel.com/jialisoft/services/trackbacks/398493.htmlempty()
删除所有子元素
语法:
myElement.empty();
q回?
(element) 主调元素
CZ:
HTML
<div id="myElement">
<p></p>
<span></span>
</div>
JavaScript
$('myElement').empty();
l果 HTML
<div id="myElement"></div>
Element Ҏ(gu): destroy
删除元素自n?qing)其所有子元素(q进行内存垃圾收?
语法:
myElement.destroy();
q回?
(null)
另外我发C个部里,比如一lclassName="option"的数l时Q用$$('.option').empty(),不v作用Q可能此Ӟempty对id起作?/div>
而用$$('.option').destroy()可以?/div>

]]>
- Comparator与Comparable的区别?http://www.aygfsteel.com/jialisoft/archive/2013/04/18/398033.html你爸是李?/dc:creator>你爸是李?/author>Thu, 18 Apr 2013 08:13:00 GMThttp://www.aygfsteel.com/jialisoft/archive/2013/04/18/398033.htmlhttp://www.aygfsteel.com/jialisoft/comments/398033.htmlhttp://www.aygfsteel.com/jialisoft/archive/2013/04/18/398033.html#Feedback0http://www.aygfsteel.com/jialisoft/comments/commentRss/398033.htmlhttp://www.aygfsteel.com/jialisoft/services/trackbacks/398033.html相同点:(x)都是用于比较Q排序的接口。例如对于List对象Q如果存储的对象cd不是自定义的Q像String那样已经实现了Comparable接口Q可以直接Collections.sort(Stringlistname)Q就可以排出序来了。而对于自定义的对象类型,需要我们自己去实现Comparator或者Comparable接口?/p>
不同点:(x)Comparable是在自定义类的内部实现的Q在cd明的地方加上implements Comparable,然后在其内部实现compareҎ(gu)。Comparator是在自定义类的外部自定义一个比较类Q这个比较类要实现Comparator接口Q实现compareҎ(gu)。也可以不具体定义一个比较类Q直接在Comparator的内部将compareҎ(gu)实现可以了。M是要自己实C个比较器?/div>
下面通过代码直观的说明:(x)
自定义类为A1Q?br />
Q?QA1cd实现ComparableQ?/strong>
q行排序验证Q?img src="http://dl.iteye.com/upload/attachment/0083/2791/b12f4506-472e-3323-831c-5417ed638ea3.jpg" alt="" style="border: 0px;" />
输出l果Q?/div>

Q?QA1cd实现ComparatorQ?/strong>
①定义一个具体的cd现ComparatorQ?/div>
q行排序验证Q?nbsp;

输出l果同上?div>②无需定义一个具体的实现c,直接new一个ComparatorQ?/div>

输出l果同上?/div>
l合Q?/strong>两种Ҏ(gu)各有优劣Q实现Comparable的方法,一x逸,但是需要修改自定义cȝ源代码。Comparator不需要修Ҏ(gu)代码Q但是需要在使用的地方对Comparatorq行实现?br />原文 Qwww.hzlxwx.com

]]>
- 用SAXQJDK自带APIQ解析XML文ghttp://www.aygfsteel.com/jialisoft/archive/2013/04/15/397874.html你爸是李?/dc:creator>你爸是李?/author>Mon, 15 Apr 2013 09:58:00 GMThttp://www.aygfsteel.com/jialisoft/archive/2013/04/15/397874.htmlhttp://www.aygfsteel.com/jialisoft/comments/397874.htmlhttp://www.aygfsteel.com/jialisoft/archive/2013/04/15/397874.html#Feedback0http://www.aygfsteel.com/jialisoft/comments/commentRss/397874.htmlhttp://www.aygfsteel.com/jialisoft/services/trackbacks/397874.html
解析的工L(fng)l承org.xml.sax.helpers.DefaultHandlerQ然后覆盖父cȝ几个Ҏ(gu)卛_。方法的详细解释可以参照JDK的API文档?/p>
- startDocument() 开始解析XML时被调用Q一般可以用来做初始化操作?/span>
- startElement() 解析到某个元素(标签Q的开头时Q例?name>Q被调用Q一般用来判断是否已开始解析某特定元素Q标{)?/name>
- endElement() 解析完某个元素(标签Q时Q例如)被调用,一般在此对某些逻辑标记做重|操作?/li>
- characters() 解析到某个文本元素(例如张三Q时被调用,一般在此方法中取|需要结合startElement()Ҏ(gu)中设|的逻辑标志q行判断是否解析到XML文档中特定的位置?/li>
下面是一个实例:(x)
Java代码:
- import java.util.ArrayList;
- import java.util.List;
- import java.io.File;
- import java.io.IOException;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.parsers.SAXParser;
- import javax.xml.parsers.SAXParserFactory;
- import org.xml.sax.Attributes;
- import org.xml.sax.SAXException;
- import org.xml.sax.helpers.DefaultHandler;
- public class URLPatternSAXParser extends DefaultHandler{
- private List urlPatternList;
- private boolean isSecurityConstraint;
- private boolean isWebResourceCollection;
- private boolean isUrlPattern;
- private final String elementSecurityConstraint = "security-constraint";
- private final String elementWebResourceCollection = "web-resource-collection";
- private final String elementUrlPattern = "url-pattern";
- public List getUrlPatternList() {
- return urlPatternList;
- }
- @Override
- public void startDocument() throws SAXException {
- this.urlPatternList = new ArrayList();
- }
- //原文参考自杭州U木家具l修http://www.hzlxwx.com
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- if (elementSecurityConstraint.equals(qName)) {
- isSecurityConstraint = true;
- return;
- }
- if (isSecurityConstraint && elementWebResourceCollection.equals(qName)) {
- isWebResourceCollection = true;
- return;
- }
- if (isSecurityConstraint && isWebResourceCollection
- && elementUrlPattern.equals(qName))
- isUrlPattern = true;
- }
- @Override
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- if (elementSecurityConstraint.equals(qName)) {
- isSecurityConstraint = false;
- }
- if (elementWebResourceCollection.equals(qName))
- isWebResourceCollection = false;
- if (elementUrlPattern.equals(qName))
- isUrlPattern = false;
- }
- @Override
- public void characters(char[] ch, int start, int length)
- throws SAXException {
- if (isSecurityConstraint && isWebResourceCollection && isUrlPattern) {
- this.urlPatternList.add(new String(ch, start, length));
- }
- }
- public void parser(File xmlFile) throws SAXException, IOException,
- ParserConfigurationException {
- if (xmlFile == null) {
- throw new IllegalArgumentException(
- "parameter 'xmlFile' must not null !");
- }
- SAXParserFactory factory = SAXParserFactory.newInstance();
- SAXParser parser = factory.newSAXParser();
- // 止DTD解析Q避免因找不到DTD文gD解析p|?/span>
- parser.getXMLReader()
- .setFeature(
- "http://apache.org/xml/features/nonvalidating/load-external-dtd",
- false);
- try {
- parser.parse(xmlFile, this);
- } catch (SAXException e) {
- System.err.println("Cann't parse " + xmlFile.getAbsolutePath());
- throw e;
- }
- }
- }
上面代码中,parser()是主Ҏ(gu)Q调用完此方法之后,可以调用getUrlPatternList()Ҏ(gu)获取Cweb.xml中解析出来的url-pattern节点的|security-constraint/web-resource-collection/url-patternQ?/p>
另外Q取元素的属性|可以在startElement()Ҏ(gu)中用attributes.getValue("<属性名>")获取到?/p>

]]>
- jsp面调用火狐插ghttp://www.aygfsteel.com/jialisoft/archive/2013/04/08/397544.html你爸是李?/dc:creator>你爸是李?/author>Mon, 08 Apr 2013 10:59:00 GMThttp://www.aygfsteel.com/jialisoft/archive/2013/04/08/397544.htmlhttp://www.aygfsteel.com/jialisoft/comments/397544.htmlhttp://www.aygfsteel.com/jialisoft/archive/2013/04/08/397544.html#Feedback1http://www.aygfsteel.com/jialisoft/comments/commentRss/397544.htmlhttp://www.aygfsteel.com/jialisoft/services/trackbacks/397544.html同事已经开发了火狐插gQ用于读取非接触卡的卡片信息Q但是页面上不会(x)调用Q查了资料之后发现其实蛮单,是坑比较多?/span>
- <head>
- <title>试</title>
- <embed id="plugin" type="application/intime-plugin" style="display:block;width:50%;height:100px;"></embed>
- <script language="JavaScript">
- var plugin = document.getElementById("plugin");
- function doTest() {
- plugin.getcard();
- card = plugin.getcard;
- alert(card);
- }
- </script>
- </head>
- <body>
- <form name="formname">
- <input type="button" onclick="doTest()" value="d"/>
- </form>
- </body>
embed是插件的载入Qgetcard()是读取卡的操作,getcard是获得卡号信息?/span>
1、即便用jQueryQ在定位插g所在DOM元素的时候也不能使用jQuery自带的selectorQ否则读不出?/span>
2、插件不能被隐藏Q如果被隐藏之后Q就失效了,所以display:none;或者hide()都不可取?/span>
这个写成了插gQ方便读卡操作用?/span>
- (function($){
- $.fn.swipeCpu = function(params){
- var defaults = {
- trigger:false
- };
- $.extend(defaults, params);
- var ele = $(this);
- //height 1px,width 0px 可能压~插件在面的位|,不能设ؓ(f)0Q也不能display讄none,?x)导致插件失效?/span>
- ele.after("<embed id=\"plugin-cpu-read\" type=\"application/intime-plugin\" style=\"display:block;height:0px;width:0px;\">");
- var plugin = document.getElementById("plugin-cpu-read");
- plugin.getcard();
- //虽然在插件中定义了该属性是字符Ԍ但是传递出来的是个对象Q所以只能先复制到文本框Q再取|再截?/span>
- var cardno = plugin.getcard;
- ele.val(cardno);
- cardno = substrCard($(this).val());
- ele.val(cardno);
- $("#plugin-cpu-read").remove();
- //是否需要触发回车事?/span>
- if(defaults.trigger){
- var event = $.Event("keyup");
- event.keyCode = 13;
- event.which = 13;
- ele.trigger(event);
- }
- };
- })(jQuery);

]]>
վ֩ģ壺
|
|
Ž|
|
|
촨|
|
ڰ|
ɽ|
ˮ|
ʤ|
|
|
ų|
ѳ|
Ԫ|
÷ӿ|
|
|
ƽ|
|
|
|
|
ī|
ʼ|
|
ĵ|
ٽ|
|
|
ƽ|
ʡ|
¡|
˷|
|
|
̶|
|
|
|