﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-梦幻之旅-随笔分类-Java</title><link>http://www.blogjava.net/hwpok/category/27105.html</link><description>DEBUG - 天道酬勤</description><language>zh-cn</language><lastBuildDate>Fri, 01 Sep 2017 21:05:45 GMT</lastBuildDate><pubDate>Fri, 01 Sep 2017 21:05:45 GMT</pubDate><ttl>60</ttl><item><title>PP代码生成器(四) 使用解决方案生成代码</title><link>http://www.blogjava.net/hwpok/archive/2017/09/01/432793.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 01 Sep 2017 12:20:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2017/09/01/432793.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/432793.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2017/09/01/432793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/432793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/432793.html</trackback:ping><description><![CDATA[<h5>这一节我们探讨, 如何使用解决方案结合数据生成代码</h5><h5><a name="t1" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box;"></a>点击&#8221;选择目标表&#8221; 标签, 在数据源所在行点击添加, 添加需要的数据源, 这步比较简单, 添加后, 一定要点击一下测试, 看是否能连接到数据.</h5><p style="box-sizing: border-box; margin: 0px 0px 1.1em; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;">然后点击查找, 就会看到当前<a href="http://lib.csdn.net/base/mysql" title="MySQL知识库" target="_blank" style="color: #df3434; text-decoration-line: none; box-sizing: border-box; font-weight: bold;">数据库</a>里的表, 界面如下:&nbsp;<br style="box-sizing: border-box;" /><img src="http://img.blog.csdn.net/20170831210546121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /><br style="box-sizing: border-box;" />选中某一个表, 或几个, 点击生成, 我们的需要的代码就生成了.&nbsp;<br style="box-sizing: border-box;" />这时回到我们的eclipse的相应目录下, 按一下F5刷新, 我们所选的表的po文件已经生成了.</p><img src ="http://www.blogjava.net/hwpok/aggbug/432793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2017-09-01 20:20 <a href="http://www.blogjava.net/hwpok/archive/2017/09/01/432793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> PP代码生成器(三) 设计freemarker模板, 创建解决方案</title><link>http://www.blogjava.net/hwpok/archive/2017/09/01/432791.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 01 Sep 2017 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2017/09/01/432791.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/432791.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2017/09/01/432791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/432791.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/432791.html</trackback:ping><description><![CDATA[<div id="article_content"  tracking-ad"="" data-mod="popu_307" data-dsm="post" style="margin: 20px 0px 0px; font-stretch: normal; line-height: 26px; font-family: Arial;">
<div style="font-family: &quot;microsoft yahei&quot;; font-size: 15px; color: #3f3f3f;">
<h5>这一节, 我们根据数据库生成PO对象为例, 来探讨如何使用PP制作freemarker模板, 创建解决方案. 工料:</h5>
<ol style="box-sizing: border-box;">
     <li style="box-sizing: border-box;">eclipse jee, 最好是安装freemarker插件, 可以高亮显示freemarker标签.</li>
     <li style="box-sizing: border-box;">可用的数据库, 可以是mysql, oracle, db2, postgresql中的任意一种. 如果没有数据库, 使用pp_home中的sample/sample-mysql.xlsx也是可以的.</li>
</ol>
<h5>* PP支持两种数据源, 一种是数据库, 另一种是excel文件数据源. 为什么支持excel呢? 是源于我曾经在建行工作, 内部数据库权限管理极为严格. 以至于PP需要查表字段信息的sql无权访问oracle的user_tab_columns等表, 这种情况下, 可以把表信息录入到excel, 继续使用PP来生成代码.</h5>
<h5><a name="t2" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>制作freemarker文件模板</h5>
<h5><a name="t3" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>再次提示, 点击PP的&#8221;工具&#8221;-&gt;&#8221;辅助设计&#8221; 菜单可以打开&#8221;辅助设计面板&#8221;, 需要的变量都可以到里面复制, 然后粘贴到freemarker中.</h5>
<h5><a name="t4" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>以下是我在eclipse里写的freemarker文件po.flt</h5>
<pre style="white-space: pre-wrap; word-wrap: break-word; box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px; font-family: &quot;Source Code Pro&quot;, monospace; padding: 10px; font-size: 14px; line-height: 1.45; word-break: break-all; color: #333333; background-color: rgba(128, 128, 128, 0.05); border: 1px solid rgba(128, 128, 128, 0.075); border-radius: 0px;"><code style="box-sizing: border-box; font-family: &quot;Source Code Pro&quot;, monospace; padding: 0px; font-size: inherit; color: inherit; background-color: transparent; white-space: pre; border-radius: 0px; word-wrap: normal;"> &lt;#-- 生成package信息 --&gt; &lt;#if p.poPackageName??&gt;package ${p.poPackageName};&lt;/#if&gt; &lt;#-- 生成import信息 --&gt; &lt;#list g.entityImportClassSet as clazz&gt; import ${clazz}; &lt;/#list&gt; /** *Description: ${g.tableComment}[${g.tableName}]管理接口实现类 &lt;br/&gt; *Create info: ${c.author}, ${g.createTime?string("yyyy/MM/dd")} &lt;br/&gt; *Copyright (c) ${g.createTime?string("yyyy")}, ${c.contact} All Rights Reserved. &lt;br/&gt; * *@Version 1.0 */ public class ${g.entityCap}Po { &lt;#-- 生成主键字段信息 --&gt; &lt;#list g.fieldLst as f&gt; private ${f.javaTypeShort} ${f.property}; &lt;#if f.columnComment??&gt;// ${f.columnComment}&lt;#if f.isPk&gt;,主键&lt;/#if&gt;&lt;#if !f.isNullAble&gt;,不能为空&lt;/#if&gt;&lt;/#if&gt; &lt;/#list&gt; &lt;#-- 生成不带参数的构造方法 --&gt; /** *不带参数的构造方法 */ public ${g.entityCap}Po(){} &lt;#-- 生成以主键为参数的构造方法 --&gt; /** *主键作为参数的构造方法 *@param ${g.pkField.property} &lt;#if g.pkField.columnComment??&gt;${g.pkField.columnComment}&lt;/#if&gt; */ public ${g.entityCap}Po(${g.pkField.javaTypeShort} ${g.pkField.property}){ this.${g.pkField.property} = ${g.pkField.property}; } &lt;#-- 生成主键set/get方法 --&gt; &lt;#list g.fieldLst as f&gt; /** *Getter &lt;#if f.columnComment??&gt;${f.columnComment}&lt;/#if&gt;&lt;#if f.isPk&gt;,主键&lt;/#if&gt;&lt;#if !f.isNullAble&gt;,不能为空&lt;/#if&gt; *@return */ public ${f.javaTypeShort} get${f.propertyCap}(){ return this.${f.property}; } /** *Setter &lt;#if f.columnComment??&gt;${f.columnComment}&lt;/#if&gt;&lt;#if f.isPk&gt;,主键&lt;/#if&gt;&lt;#if !f.isNullAble&gt;,不能为空&lt;/#if&gt; *@param ${f.property} */ public void set${f.propertyCap}(${f.javaTypeShort} ${f.property}){ this.${f.property} = ${f.property}; } &lt;/#list&gt; } </code></pre>
<h5><a name="t5" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>在eclipse里编辑好这个文件后, 在pp_home/config/templates里创建myscheme文件夹, 然后把po.flt复制到这个文件夹中. 到这步为止, 我们模板就制作完了.</h5>
<h5><a name="t6" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>下面我们开始创建解决方案</h5>
<h4><a name="t7" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>打开PP后, 请按如下步骤操作,</h4>
<ol style="box-sizing: border-box;">
     <li style="box-sizing: border-box;">点击&#8221;可写&#8221;按钮, 使这个标签页上的控件呈可编辑状态</li>
     <li style="box-sizing: border-box;">在&#8221;解析方案&#8221;可编辑下拉框中填写&#8221;myscheme&#8221;</li>
     <li style="box-sizing: border-box;">在&#8221;域名&#8221;文件框里填入&#8221;com.hwp.pro&#8221;, 这里是您的项目的包前缀, 鼠标在上面停留, 可以看到提示, 可以通过${domain}在freemarker中引用它的值.</li>
     <li style="box-sizing: border-box;">在&#8221;模块&#8221;里输入&#8221;pub&#8221;, 我们要生成文件的模块名, 鼠标在上面停留, 可以看到相应的提示</li>
     <li style="box-sizing: border-box;">&#8220;基本URL&#8221;不用填写, 生成controller, html时才可能会用到</li>
     <li style="box-sizing: border-box;">在&#8221;基本路径&#8221;里输入&#8221;/Uers/hui/Documents/myspace/workspaces1/workspacepp/generator-test/src/main&#8221; 这是我们项目文件的路径, 最终生成文件的保存路径会和它有关系. 具体关系是生成的文件的最终保存路径是 &#8220;基本路径&#8221; + &#8220;包名&#8221;的路径.</li>
     <li style="box-sizing: border-box;">点击&#8221;添加或修改&#8221;, 此时, 解决方案就保存好了.</li>
</ol>
<h5><a name="t8" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>下面我们开始为&#8221;解决方案&#8221; 添加 &#8220;生成任务&#8221;, 请按如下步骤操作:</h5>
<p style="box-sizing: border-box; margin: 0px 0px 1.1em;">选中刚才的创建的解决方案, 点击&#8221;任务列表&#8221; 下面的 &#8220;添加&#8221;, 在弹出界面中输入如下信息<img src="http://img.blog.csdn.net/20170831205138111?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /><br style="box-sizing: border-box;" />
##### 在这个面板中作以下几点说明:&nbsp;<br style="box-sizing: border-box;" />
1. 模板路径<span style="box-sizing: border-box;">$</span>{templatesPath}会被pp_home//comfig//templates替换.&nbsp;<br style="box-sizing: border-box;" />
2. 存放路径最终的结果是前面的&#8221;基本路径&#8221; + &#8220;<a href="http://lib.csdn.net/base/java" title="Java 知识库" target="_blank" style="color: #df3434; text-decoration-line: none; box-sizing: border-box; font-weight: bold;">Java</a>&#8221; +&#8221;包名(转化成路径)&#8221;&nbsp;<br style="box-sizing: border-box;" />
3. 包名后面的文本框的值, 是包名的别名, 在freemarker文件中可以通过<span style="box-sizing: border-box;">$</span>{p.poPackageName}去引用</p>
<h4><a name="t9" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a></h4>
<h4><a name="t10" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a></h4>
<h4><a name="t11" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a></h4>
<p style="box-sizing: border-box; margin: 0px 0px 1.1em;">这进下任务列表里已经有了这个任务, 如图:&nbsp;<br style="box-sizing: border-box;" />
<img src="http://img.blog.csdn.net/20170831203722573?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /></p>
<h5><a name="t12" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>上面的这些信息, 会保存在PP的sqlite数据库, 以备下次使用.</h5>
<h5><a name="t13" target="_blank" style="color: #4fa1db; box-sizing: border-box;"></a>下面一篇博客, 我们探讨, 如何用解决方案来结合数据库表来生成文件</h5>
</div>
</div>
<div tracking-ad=""  bdshare-button-style0-16"="" data-mod="popu_172" data-bd-bind="1504268264315" style="zoom: 1; float: right;"><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="more" target="_blank" style="color: #333333; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-image: url(&quot;http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png&quot;) !important; background-position: 0px 0px !important;"></a><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="qzone" title="分享到QQ空间" target="_blank" style="color: #336699; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-image: url(&quot;../img/share/icons_0_16.png?v=91362611.png&quot;); background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-position: 0px -52px !important;"></a><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="tsina" title="分享到新浪微博" target="_blank" style="color: #336699; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-image: url(&quot;../img/share/icons_0_16.png?v=91362611.png&quot;); background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-position: 0px -104px !important;"></a><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="tqq" title="分享到腾讯微博" target="_blank" style="color: #336699; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-image: url(&quot;../img/share/icons_0_16.png?v=91362611.png&quot;); background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-position: 0px -260px !important;"></a><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="renren" title="分享到人人网" target="_blank" style="color: #336699; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-image: url(&quot;../img/share/icons_0_16.png?v=91362611.png&quot;); background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-position: 0px -208px !important;"></a><a href="http://blog.csdn.net/hwpok/article/details/77752783#" data-cmd="weixin" title="分享到微信" target="_blank" style="color: #336699; text-decoration-line: none; float: left; font-size: 12px; padding-left: 17px; line-height: 16px; height: 16px; background-image: url(&quot;../img/share/icons_0_16.png?v=91362611.png&quot;); background-repeat: no-repeat; cursor: pointer; margin: 6px 6px 6px 0px; background-position: 0px -1612px !important;"></a></div>
<div id="digg" articleid="77752783" style="clear: both; width: 182px; margin: 0px auto; padding-top: 30px; padding-bottom: 15px;"><dl id="btnDigg"  digg_enable"="" style="display: inline-block; float: left; width: 72px; height: 72px; overflow: hidden; margin: 0px 2px; background: #ff7900; cursor: pointer; color: #333333; font-family: Arial, Console, Verdana, &quot;Courier New&quot;; font-size: 12px;"><dt style="margin: 0px; padding: 12px 0px 3px; color: #ffffff; font-stretch: normal; font-size: 27px; line-height: 30px; font-family: &quot;Microsoft YaHei&quot;;"><br />
</dt><dd style="margin: 0px; color: #ffffff; font-stretch: normal; line-height: 22px; font-family: Arial;"><br />
</dd></dl><dl id="btnBury"  digg_enable"="" style="display: inline-block; float: left; width: 72px; height: 72px; overflow: hidden; margin: 0px 2px; background: #ff7900; cursor: pointer; color: #333333; font-family: Arial, Console, Verdana, &quot;Courier New&quot;; font-size: 12px;"></dl></div><img src ="http://www.blogjava.net/hwpok/aggbug/432791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2017-09-01 20:19 <a href="http://www.blogjava.net/hwpok/archive/2017/09/01/432791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> PP代码生成器(二) 解决方案, 生成任务, 辅助设计面板</title><link>http://www.blogjava.net/hwpok/archive/2017/09/01/432790.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 01 Sep 2017 12:17:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2017/09/01/432790.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/432790.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2017/09/01/432790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/432790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/432790.html</trackback:ping><description><![CDATA[<h5>我们接着上一篇博客继续讨论如何使用PP生成代码.</h5><h5><a name="t1" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>首先, 我们介绍两个概念&#8221;解决方案&#8221;和 &#8220;生成任务&#8221;.</h5><ol style="box-sizing: border-box; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><li style="box-sizing: border-box;">解决方案: 解决方案是一系列生成任务的集合. 它包含若干个生成任务.</li><li style="box-sizing: border-box;">生成任务: 每个任务会关联一个freemarker模板, 最终会使用这个模板来生成一个结果文件</li></ol><h5><a name="t2" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>解决方案和任务的关系如下图:</h5><p style="box-sizing: border-box; margin: 0px 0px 1.1em; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><img src="http://img.blog.csdn.net/20170901082058358?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /></p><h5><a name="t3" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>在上一篇博客中, 我们知道了PP是基于freemarker模板的, PP遵循着 &#8220;数据模型&#8221; + &#8220;模板&#8221; = &#8220;最终文件&#8221; 这种基本的规则;</h5><h5><a name="t4" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>使用PP, &#8220;数据模型&#8221; 不需要我们关心, PP已经为我们内置了. 通过菜单&#8221;工具&#8221;-&gt;&#8221;辅助设计&#8221; 可以轻松地使用模板变量来制作我们的freemaker模板.</h5><h5><a name="t5" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>使用PP, &#8220;模板&#8221;是需要我们自己来编写制作. 可以打开辅助设计, 选中需要使用的变量, 粘贴到freemarker模板中.</h5><h5><a name="t6" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>下面我们着重介绍一下辅助设计面板, 先上图:</h5><p style="box-sizing: border-box; margin: 0px 0px 1.1em; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><img src="http://img.blog.csdn.net/20170831190612514?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /></p><h5><a name="t7" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>在这个面板里, 变量有4个分类:</h5><ol style="box-sizing: border-box; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><li style="box-sizing: border-box;">全局: 是数据库相关的, 表相关的信息, 通过${g.x}引用</li><li style="box-sizing: border-box;">领域: 是数据库表字段相关的信息, 通过${f.x}引用</li><li style="box-sizing: border-box;">路径: 是创建&#8221;生成任务&#8221;时的路径引用, 通过${x}引用</li><li style="box-sizing: border-box;">自定义: 是用户自定义的信息, 如代码作者, 公司, 联系方式等, 通过${c.x}引用</li></ol><h5><a name="t8" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>这些变量都有注释说明, 有几年程序经验的猿猿应该一看就能明白.</h5><h5><a name="t9" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>一点小技巧, 要复制这些变量, 只需要选中, 然后粘贴到freemarker模板中</h5><img src ="http://www.blogjava.net/hwpok/aggbug/432790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2017-09-01 20:17 <a href="http://www.blogjava.net/hwpok/archive/2017/09/01/432790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> PP代码生成器(一) 简介, 下载, 运行</title><link>http://www.blogjava.net/hwpok/archive/2017/09/01/432789.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 01 Sep 2017 12:16:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2017/09/01/432789.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/432789.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2017/09/01/432789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/432789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/432789.html</trackback:ping><description><![CDATA[<h4>今天, 向大家推荐一款代码生成利器&#8212;-PP代码生成器(后文简称为PP, 注意哦, 是读朋朋, 不是皮皮哈.).</h4><h4><a name="t1" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>PP是基于freemarker模板, 在freemarker的世界里, 数据模型 + 模板文件 = 生成结果. PP也遵循着这条基本原则, 其基本设计原理如下图.</h4><p style="box-sizing: border-box; margin: 0px 0px 1.1em; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><img src="http://img.blog.csdn.net/20170831171305810?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /></p><h4><a name="t2" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>下载PP&nbsp;<a href="https://pan.baidu.com/s/1eSNAhPK" target="_blank" style="color: #4fa1db; text-decoration-line: none; box-sizing: border-box;">下载地址1(点击可下载)</a>&nbsp;,&nbsp;<a href="http://download.csdn.net/download/hwpok/9958972" target="_blank" style="color: #4fa1db; text-decoration-line: none; box-sizing: border-box;">下载地址2(点击可下载)</a>&nbsp;, 然后解压到您喜欢的目录. 为了以后使用方便, 请作如下操作:</h4><h4><a name="t3" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>如果您是Windows系统, 进工具的目录, 请把pp-generator-0.0.5/bin/run-gui.bat发送到桌面,生成快捷方式, 以后要运行代码生成器, 双击即可.</h4><h4>如果您是mac OS或Ubuntu OS, 先打开终端, 执行 chmod +x pp-generator-0.0.5/bin/run-gui.sh, 为这个sh文件增加可执行权限, 然后在终终执行: vi ~/.bash_profile, 并在其中加入: alias ppstart=&#8217;/Users/hui/Documents/mystudio/software/pp-generator-0.0.5/bin/run-gui.sh&#8217;, 以后要运行代码生成器, 在终端里输入ppstart就可以了.</h4><h4><a name="t5" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>本工具运行的前提条件是电脑已装JAVA运行时. 下面是我运行PP后的截图:</h4><p style="box-sizing: border-box; margin: 0px 0px 1.1em; color: #3f3f3f; font-family: &quot;microsoft yahei&quot;; font-size: 15px; background-color: #ffffff;"><img src="http://img.blog.csdn.net/20170831172217189?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdwb2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title="" style="border: none; box-sizing: border-box; max-width: 100%;" /></p><h6><a name="t6" target="_blank" style="color: rgb(79, 161, 219); box-sizing: border-box; width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);"></a>下一篇博客我们继续介绍PP的架构原理和如何使用PP生成代码.</h6><img src ="http://www.blogjava.net/hwpok/aggbug/432789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2017-09-01 20:16 <a href="http://www.blogjava.net/hwpok/archive/2017/09/01/432789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PP持久层代码生成器</title><link>http://www.blogjava.net/hwpok/archive/2016/10/11/431880.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Tue, 11 Oct 2016 00:03:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2016/10/11/431880.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/431880.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2016/10/11/431880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/431880.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/431880.html</trackback:ping><description><![CDATA[<div><span style="color: #333333; font-family: 'Microsoft YaHei'; font-size: 12px; line-height: 18px; background-color: #f8f8f8;">本人开发的基于Freemarker引擎的持久层代码生成器, 希望给大家的编码生活带来便利.<br /></span>下载地址: http://download.csdn.net/detail/hwpok/9650218</div><img src ="http://www.blogjava.net/hwpok/aggbug/431880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2016-10-11 08:03 <a href="http://www.blogjava.net/hwpok/archive/2016/10/11/431880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse  maven</title><link>http://www.blogjava.net/hwpok/archive/2014/08/19/417120.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Tue, 19 Aug 2014 11:33:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2014/08/19/417120.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/417120.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2014/08/19/417120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/417120.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/417120.html</trackback:ping><description><![CDATA[<div>转自:<a href="http://blog.csdn.net/lovingprince/article/details/4973247">http://blog.csdn.net/lovingprince/article/details/4973247</a>
<p><span style="font-size: small"><span style="font-family: 宋体"><span style="font-size: x-large">maven 让您的构建不是一般的爽，下面就看看怎么样让maven工作起来。</span></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">第一步</span><span style="font-family: Calibri">,</span><span style="font-family: 宋体">做好安装</span><span style="font-family: Calibri">maven</span><span style="font-family: 宋体">前的准备工作，首先安装</span><span style="font-family: Calibri">JDK5</span><span style="font-family: 宋体">或者</span><span style="font-family: Calibri">jdk6.</span><span style="font-family: 宋体">这一步比较简单，学</span><span style="font-family: Calibri">java</span><span style="font-family: 宋体">的同学应该都会，不罗嗦了，检验</span><span style="font-family: Calibri">JDK</span><span style="font-family: 宋体">是否安装好，可以输入如下命令后回车</span><span style="font-family: Calibri">(windows</span><span style="font-family: 宋体">系统</span><span style="font-family: Calibri">)</span></span></p>
<p><span style="font-size: small"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/lovingprince/EntryImages/20091209/1.JPG" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">第二步，下载</span><span style="font-family: Calibri">maven</span><span style="font-family: 宋体">并进行安装，</span><span style="font-family: Calibri">maven</span><span style="font-family: 宋体">下载地址</span><a href="http://maven.apache.org/download.html"><span style="font-family: Calibri">http://maven.apache.org/download.html</span></a> </span><span style="font-family: 宋体">，本文下载的是</span><a href="http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.zip"><span style="font-family: Calibri">apache-maven-2.2.0-bin.zip</span></a> <span style="font-family: 宋体">。下载后解压至当前目录，我的解压地址</span><span style="font-family: Calibri">D:/apache-maven-2.2.0-bin</span><span style="font-family: 宋体">。</span></p>
<p><span style="font-family: 宋体"><span style="font-size: x-large">设置两个比较重要的环境变量。</span></span></p>
<p style="text-align: left" align="left">&nbsp;</p>
<p><strong></strong></p>
<p><span style="font-family: Calibri; font-size: small"></span></p>
<div bg_c-sharp?="">
<div>
<div><strong>[c-sharp]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div>
<ol><li><span>M2_HOME=&nbsp;D:/apache-maven-2.2.0-bin/apache-maven-2.2.0&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>PATH=%PATH%;%M2_HOME%/bin&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">M2_HOME= D:/apache-maven-2.2.0-bin/apache-maven-2.2.0

PATH=%PATH%;%M2_HOME%/bin
</textarea>&nbsp;&nbsp; 
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">验证你的安装是否正确，则在</span><span style="font-family: Calibri">cmd </span><span style="font-family: 宋体">下输入</span><span style="font-family: Calibri"> mvn &#8211;v .</span><span style="font-family: 宋体">如果出现</span><span style="font-family: Calibri">Maven</span><span style="font-family: 宋体">的版本信息，则表示安装成功，否则，仔细检查你的环境变量设置是否正确。</span></span></p>
<p><span style="font-family: Calibri">&nbsp;</span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">安装后</span><span style="font-family: Calibri">maven</span><span style="font-family: 宋体">的目录结构如下：</span></span></p>
<p><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/lovingprince/EntryImages/20091209/2.JPG" /></span></span></p>
<p>&nbsp;</p>
<p align="left"><span style="font-size: x-large"><span style="font-family: 宋体">bin</span><span style="font-family: 宋体">目录包含了运行Maven的mvn脚本。 </span><span style="font-family: 宋体">boot</span><span style="font-family: 宋体">目录包含了一个负责创建Maven运行所需要的类装载器的JAR文件。 </span><span style="font-family: 宋体">conf</span><span style="font-family: 宋体">目录包含了一个全局的</span><span style="font-family: 宋体">settings.xml</span><span style="font-family: 宋体">文件，该文件用来自定义你机器上Maven的一些行为。如果需要自定义Maven，更通常的做法是覆写 </span><span style="font-family: 宋体">%home%/.m2</span><span style="font-family: 宋体">目录下的</span><span style="font-family: 宋体">settings.xml</span><span style="font-family: 宋体">文件，每个用户都有对应的这个目录。</span><span style="font-family: 宋体">lib</span></span><span style="font-family: 宋体; font-size: 12pt"><span style="font-size: x-large">目录有了一个包含Maven核心的JAR文件。 </span><a name="section-installation-user"></a><span style="font-size: x-large">另外，默认情况下，maven会将本地仓库存贮在</span></span><span style="font-size: x-large"><span style="font-family: 宋体">%home%/.m2/repository/</span><span style="font-family: 宋体">下，当你从远程Maven仓库下载依赖的时候，Maven在你本地仓库存储了这个依赖的一个副本，如果你要改变这个位置，那么你得修改</span><span style="font-family: 宋体">settings.xml</span><span style="font-family: 宋体">文件。例如将路径修改到D盘 ,则修改节点 &lt;localRepository&gt;d:/repository&lt;/localRepository&gt;，设置后别忘了设置环境变量 M2_REPO= d:/repository .</span></span></p>
<p align="left"><span style="font-size: x-large"></span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体"><span>
</span></span></span></p><p><span style="font-size: x-large"><span style="font-family: 宋体">第三步、创建一个简单</span><span style="font-family: Calibri">web </span><span style="font-family: 宋体">项目玩玩。</span></span></p>
<p><span style="font-size: x-large"><span style="font-family: Calibri"><span>&nbsp;&nbsp;&nbsp;&nbsp; Cmd </span></span><span style="font-family: 宋体">下，键入命令</span> </span></p>
<p>&nbsp;</p>
<p style="text-indent: 5.25pt"><span style="font-family: Calibri"></span></p>
<div bg_c-sharp?="">
<div>
<div><strong>[c-sharp]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div>
<ol><li><span>mvn&nbsp;archetype:create&nbsp;-DgroupId=com.taobao.maven&nbsp;-DartifactId=maven-webapp&nbsp;-DpackageName=com.taobao.maven.web&nbsp;-DarchetypeArtifactId=maven-archetype-webapp&nbsp;&nbsp;</span></li></ol></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-indent: 5.25pt"><span style="font-family: 宋体">执行命令后显示信息如下：</span></p>
<p style="text-indent: 5.25pt">&nbsp;</p>
<p style="text-indent: 5.25pt"><span style="font-family: Calibri"></span></p>
<div bg_c-sharp?="">
<div>
<div><strong>[c-sharp]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div>
<ol><li><span>[INFO]&nbsp;Scanning&nbsp;for&nbsp;projects...&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Searching&nbsp;repository&nbsp;for&nbsp;plugin&nbsp;with&nbsp;prefix:&nbsp;'archetype'.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;artifact&nbsp;org.apache.maven.plugins:maven-archetype-plugin:&nbsp;checking&nbsp;for&nbsp;updates&nbsp;from&nbsp;central&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.po &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-4/maven-archetype-2.0-alpha-4.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.ja &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Building&nbsp;Maven&nbsp;Default&nbsp;Project&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;&nbsp;&nbsp;&nbsp;task-segment:&nbsp;[archetype:create]&nbsp;(aggregator-style)&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file/1.0-alpha-6/wagon-file-1.0-alpha-6.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-alpha-6/wagon-providers-1.0-alpha-6.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.pom &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Setting&nbsp;property:&nbsp;classpath.resource.loader.class&nbsp;=&gt;&nbsp;'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Setting&nbsp;property:&nbsp;velocimacro.messages.on&nbsp;=&gt;&nbsp;'false'.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Setting&nbsp;property:&nbsp;resource.loader&nbsp;=&gt;&nbsp;'classpath'.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Setting&nbsp;property:&nbsp;resource.manager.logwhenfound&nbsp;=&gt;&nbsp;'false'.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;[archetype:create&nbsp;{execution:&nbsp;default-cli}]&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[WARNING]&nbsp;This&nbsp;goal&nbsp;is&nbsp;deprecated.&nbsp;Please&nbsp;use&nbsp;mvn&nbsp;archetype:generate&nbsp;instead&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;artifact&nbsp;org.apache.maven.archetypes:maven-archetype-webapp:&nbsp;checking&nbsp;for&nbsp;updates&nbsp;from&nbsp;central&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>Downloading:&nbsp;http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar &nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;----------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Using&nbsp;following&nbsp;parameters&nbsp;for&nbsp;creating&nbsp;OldArchetype:&nbsp;maven-archetype-webapp:RELEASE&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;----------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;groupId,&nbsp;Value:&nbsp;com.taobao.maven&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;packageName,&nbsp;Value:&nbsp;com.taobao.maven.web&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;basedir,&nbsp;Value:&nbsp;D:/workspace/branch&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;package,&nbsp;Value:&nbsp;com.taobao.maven.web&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;version,&nbsp;Value:&nbsp;1.0-SNAPSHOT&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Parameter:&nbsp;artifactId,&nbsp;Value:&nbsp;maven-webapp&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;*********************&nbsp;End&nbsp;of&nbsp;debug&nbsp;info&nbsp;from&nbsp;resources&nbsp;from&nbsp;generated&nbsp;POM&nbsp;***********************&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;OldArchetype&nbsp;created&nbsp;in&nbsp;dir:&nbsp;D:/workspace/branch/maven-webapp&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;BUILD&nbsp;SUCCESSFUL&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;------------------------------------------------------------------------&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Total&nbsp;time:&nbsp;26&nbsp;seconds&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Finished&nbsp;at:&nbsp;Wed&nbsp;Dec&nbsp;09&nbsp;16:47:11&nbsp;CST&nbsp;2009&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;Final&nbsp;Memory:&nbsp;8M/15M&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>[INFO]&nbsp;------------------------------------------------------------------------&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'archetype'.

[INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for updates from central

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.po

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-4/maven-archetype-2.0-alpha-4.pom

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.ja

 

[INFO] ------------------------------------------------------------------------

[INFO] Building Maven Default Project

[INFO]    task-segment: [archetype:create] (aggregator-style)

[INFO] ------------------------------------------------------------------------

Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.pom

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file/1.0-alpha-6/wagon-file-1.0-alpha-6.pom

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-alpha-6/wagon-providers-1.0-alpha-6.pom

 

Downloading: http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.pom

 

Downloading: http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom

 

Downloading: http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.pom

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.pom

 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.jar

Downloading: http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar

Downloading: http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar

Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.jar

Downloading: http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar

[INFO] Setting property: classpath.resource.loader.class =&gt; 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.

[INFO] Setting property: velocimacro.messages.on =&gt; 'false'.

[INFO] Setting property: resource.loader =&gt; 'classpath'.

[INFO] Setting property: resource.manager.logwhenfound =&gt; 'false'.

[INFO] [archetype:create {execution: default-cli}]

[WARNING] This goal is deprecated. Please use mvn archetype:generate instead

[INFO] artifact org.apache.maven.archetypes:maven-archetype-webapp: checking for updates from central

Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar

 

[INFO] ----------------------------------------------------------------------------

[INFO] Using following parameters for creating OldArchetype: maven-archetype-webapp:RELEASE

[INFO] ----------------------------------------------------------------------------

[INFO] Parameter: groupId, Value: com.taobao.maven

[INFO] Parameter: packageName, Value: com.taobao.maven.web

[INFO] Parameter: basedir, Value: D:/workspace/branch

[INFO] Parameter: package, Value: com.taobao.maven.web

[INFO] Parameter: version, Value: 1.0-SNAPSHOT

[INFO] Parameter: artifactId, Value: maven-webapp

[INFO] ********************* End of debug info from resources from generated POM ***********************

[INFO] OldArchetype created in dir: D:/workspace/branch/maven-webapp

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESSFUL

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 26 seconds

[INFO] Finished at: Wed Dec 09 16:47:11 CST 2009

[INFO] Final Memory: 8M/15M

[INFO] ------------------------------------------------------------------------

</textarea> 
<p>&nbsp;</p>
<p style="text-indent: 5.25pt">&nbsp;</p>
<p style="text-indent: 5.25pt"><span style="font-family: 宋体">此时已经创建了一个</span><span style="font-family: Calibri">web</span><span style="font-family: 宋体">项目，你可以切换到</span><span style="font-family: Calibri">maven-webapp</span><span style="font-family: 宋体">目录看到目录结构。</span></p>
<p>&nbsp;</p>
<p align="left">&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/lovingprince/EntryImages/20091209/3.JPG" /></p>
<p>&nbsp;</p>
<p align="left"><span style="font-size: x-large"></span><span style="font-size: x-large"><span style="font-family: 宋体">可以看一下这个</span><span style="font-family: Calibri">pom.xml</span><span style="font-family: 宋体">的内容。</span></span></p>
<p align="left">
</p><p>
</p><p style="text-indent: 5.25pt"><span style="font-family: Calibri">&nbsp; </span></p>
<div bg_xhtml?="">
<div>
<div><strong>[xhtml]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div>
<ol><li><span>&lt;project&nbsp;xmlns="http://maven.apache.org/POM/4.0.0"&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;xsi:schemaLocation="http://maven.apache.org/POM/4.0.0&nbsp;http://maven.apache.org/maven-v4_0_0.xsd"&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;groupId&gt;com.taobao.maven&lt;/groupId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;artifactId&gt;maven-webapp&lt;/artifactId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;packaging&gt;war&lt;/packaging&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;name&gt;maven-webapp&nbsp;Maven&nbsp;Webapp&lt;/name&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;url&gt;http://maven.apache.org&lt;/url&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;dependencies&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;junit&lt;/groupId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;junit&lt;/artifactId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.8.1&lt;/version&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;scope&gt;test&lt;/scope&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;/dependencies&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;build&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;finalName&gt;maven-webapp&lt;/finalName&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;/build&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&lt;/project&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;

  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

  &lt;groupId&gt;com.taobao.maven&lt;/groupId&gt;

  &lt;artifactId&gt;maven-webapp&lt;/artifactId&gt;

  &lt;packaging&gt;war&lt;/packaging&gt;

  &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;

  &lt;name&gt;maven-webapp Maven Webapp&lt;/name&gt;

  &lt;url&gt;http://maven.apache.org&lt;/url&gt;

  &lt;dependencies&gt;

    &lt;dependency&gt;

      &lt;groupId&gt;junit&lt;/groupId&gt;

      &lt;artifactId&gt;junit&lt;/artifactId&gt;

      &lt;version&gt;3.8.1&lt;/version&gt;

      &lt;scope&gt;test&lt;/scope&gt;

    &lt;/dependency&gt;

  &lt;/dependencies&gt;

  &lt;build&gt;

    &lt;finalName&gt;maven-webapp&lt;/finalName&gt;

  &lt;/build&gt;

&lt;/project&gt;

 

</textarea> 
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-large"><span style="font-family: Calibri">packaging: </span><span style="font-family: 宋体">这里值为</span><span style="font-family: Calibri">war,</span><span style="font-family: 宋体">表示希望将该项目以</span><span style="font-family: Calibri">war</span><span style="font-family: 宋体">包形式打包，打包后将会在</span> <span style="font-family: 宋体"><code>target</code><span style="font-family: 宋体">目录创建一个</span></span><span style="font-family: Calibri"> <acronym><span style="font-family: 'Calibri', 'sans-serif'">WAR</span></acronym> </span><span style="font-family: 宋体">文件，并以</span><span style="font-family: Calibri">finalName</span><span style="font-family: 宋体">为文件名创建名为</span><span style="font-family: Calibri">maven-wepapp.war</span><span style="font-family: 宋体">的包。</span></span></p>
<p><span style="font-family: Calibri">&nbsp;</span></p>
<p><span style="font-size: x-large"><span style="font-family: Calibri">Dependency</span><span style="font-family: 宋体">：表示这里依赖了一个</span><span style="font-family: Calibri">junit</span><span style="font-family: 宋体">的</span><span style="font-family: Calibri">jar</span><span style="font-family: 宋体">文件，只在测试阶段时才使用到。打包时并不会打到</span><span style="font-family: Calibri">war</span><span style="font-family: 宋体">包中去。</span></span></p>
<p><span style="font-family: Calibri">&nbsp;</span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">第四步、这个简单的</span><span style="font-family: Calibri">web</span><span style="font-family: 宋体">包中已经有了一个</span><span style="font-family: Calibri">helloworld </span><span style="font-family: 宋体">的</span><span style="font-family: Calibri">index.jsp</span><span style="font-family: 宋体">文件，我们要做的就是将这个项目打包成</span><span style="font-family: Calibri">war</span><span style="font-family: 宋体">，然后放到</span><span style="font-family: Calibri">web</span><span style="font-family: 宋体">容器中去就可以看到效果了。</span></span></p>
<p><span style="font-family: Calibri">&nbsp;</span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">打包命令</span><span style="font-family: Calibri"> mvn install, </span><span style="font-family: 宋体">如下：</span></span></p>
<p align="left"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/lovingprince/EntryImages/20091209/4.JPG" /></p>
<p align="left">&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-large"><span style="font-family: Calibri">Target</span><span style="font-family: 宋体">目录下已经存在了</span><span style="font-family: Calibri">maven-webapp.war</span><span style="font-family: 宋体">包，部署到</span><span style="font-family: Calibri">Tomcat</span><span style="font-family: 宋体">等容器下后。</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: x-large">访问：</span></span></p>
<p><a href="http://localhost:8080/maven-webapp/index.jsp"><span style="font-family: Calibri"><span style="font-size: x-large">Http://localhost:8080/maven-webapp/index.jsp</span></span></a></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">即可出现</span><span style="font-family: Calibri">hello world </span><span style="font-family: 宋体">字样。</span></span></p>
<p><span style="font-family: Calibri">&nbsp;</span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">另外，</span><span style="font-family: Calibri">maven</span><span style="font-family: 宋体">提供了一个</span><span style="font-family: Calibri">jetty</span><span style="font-family: 宋体">的</span><span style="font-family: Calibri">web</span><span style="font-family: 宋体">容器插件，让我们可以不用自己去下载</span><span style="font-family: Calibri">tomcat</span><span style="font-family: 宋体">等容器，</span></span></p>
<p><span style="font-size: x-large"><span style="font-family: 宋体">但是需要在</span><span style="font-family: Calibri">pom.xml</span><span style="font-family: 宋体">配置</span><span style="font-family: Calibri">jetty</span><span style="font-family: 宋体">插件。</span></span></p><pre><span style="font-size: small"><span style="font-family: 宋体">&nbsp;</span></span>&nbsp;</pre><pre><span style="font-family: 宋体; font-size: small">&nbsp;<div bg_xhtml?=""><div><div><strong>[xhtml]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div><ol><li><span>&lt;build&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;finalName&gt;maven-webapp&lt;/finalName&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugins&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugin&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/plugin&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/plugins&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;/build&gt;&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">&lt;build&gt;
    &lt;finalName&gt;maven-webapp&lt;/finalName&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;
        &lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;
</textarea> </span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">配置好后，可以启动jetty服务器。</span></span></pre><pre><strong><span style="font-family: 宋体"><span style="font-size: x-large">mvn jetty:run</span></span></strong></pre><pre><strong><span style="font-family: 宋体">&nbsp;</span></strong></pre><pre><strong><span style="font-family: 宋体"><span style="font-size: x-large">最后出现</span></span></strong></pre><pre><strong><span style="font-family: 宋体"><span style="font-size: small"><div bg_c-sharp?=""><div><div><strong>[c-sharp]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div><ol><li><span>2009-12-09&nbsp;17:35:37.065:INFO::jetty-6.1.22&nbsp;&nbsp;</span></li><li>2009-12-09&nbsp;17:35:37.487:INFO::No&nbsp;Transaction&nbsp;manager&nbsp;found&nbsp;-&nbsp;if&nbsp;your&nbsp;webapp&nbsp;requires&nbsp;one,&nbsp;please&nbsp;configure&nbsp;one.&nbsp;&nbsp;</li><li>2009-12-09&nbsp;17:35:40.049:INFO::Started&nbsp;SelectChannelConnector@0.0.0.0:8080&nbsp;&nbsp;</li><li>[INFO]&nbsp;Started&nbsp;Jetty&nbsp;Server&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">2009-12-09 17:35:37.065:INFO::jetty-6.1.22
2009-12-09 17:35:37.487:INFO::No Transaction manager found - if your webapp requires one, please configure one.
2009-12-09 17:35:40.049:INFO::Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
</textarea> </span></span></strong></pre><pre><pre><strong></strong></pre>
<span style="font-family: 宋体"><span style="font-size: x-large">表示启动成功，访问url即可。</span></span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">如果jetty无法启动，在settings.xml中，配置一下</span></span></pre><pre><pre></pre>
<span style="font-family: 宋体; font-size: small"><div bg_xhtml?=""><div><div><strong>[xhtml]</strong> <a title="view plain" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>view plain</u></a><a title="copy" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>copy</u></a><a title="print" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>print</u></a><a title="?" href="http://blog.csdn.net/lovingprince/article/details/4973247#"><u>?</u></a></div></div><ol><li><span>&lt;pluginGroups&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;pluginGroup&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;Specifies&nbsp;a&nbsp;further&nbsp;group&nbsp;identifier&nbsp;to&nbsp;use&nbsp;for&nbsp;plugin&nbsp;lookup.&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;pluginGroup&gt;com.your.plugins&lt;/pluginGroup&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;--&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;pluginGroup&gt;org.mortbay.jetty&lt;/pluginGroup&gt;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;/pluginGroups&gt;&nbsp;&nbsp;</li></ol></div><textarea style="display: none" rows="15" cols="50" name="code">&lt;pluginGroups&gt;
    &lt;!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    &lt;pluginGroup&gt;com.your.plugins&lt;/pluginGroup&gt;
    --&gt;
    &lt;pluginGroup&gt;org.mortbay.jetty&lt;/pluginGroup&gt;
  &lt;/pluginGroups&gt;
</textarea> &nbsp;</span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">即可解决问题。</span></span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">小提示：</span></span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">如果想在eclipse中使用工程，则在命令行中运行</span></span></pre><pre><span style="font-size: small"><span style="font-family: 宋体"><span style="font-size: x-large"> Mvn eclipse:eclipse &nbsp;即可生成eclipse工程所需的.project等文件。</span></span></span></pre><pre><span style="font-size: small"><span style="font-family: 宋体"><span style="font-size: x-large"> Mvn eclipse:clean&nbsp;则是将eclipse配置信息清除</span></span></span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体">&nbsp;</span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large">如果要在eclipse中查看外部引入包的源代码等，则在命令行中键入</span></span></pre><pre><span style="font-family: 宋体"><span style="font-size: x-large"><span style="color: #c60a00">mvn</span> <span style="color: #c60a00">dependency:sources&nbsp;</span>即可下载源代码，如果没有下载，请先执行命令 mvn clean ，后再下载</span></span></pre><br /><div>http://www.cnblogs.com/sunxucool/archive/2013/03/05/2944011.html</div></div><img src ="http://www.blogjava.net/hwpok/aggbug/417120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2014-08-19 19:33 <a href="http://www.blogjava.net/hwpok/archive/2014/08/19/417120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>平衡二叉树,java实现</title><link>http://www.blogjava.net/hwpok/archive/2014/07/12/415731.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 12 Jul 2014 12:49:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2014/07/12/415731.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/415731.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2014/07/12/415731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/415731.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/415731.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public&nbsp;class&nbsp;MyBinaryTree{&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;MyNode&nbsp;root;//&nbsp;根节点&...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2014/07/12/415731.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/415731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2014-07-12 20:49 <a href="http://www.blogjava.net/hwpok/archive/2014/07/12/415731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据结构复习</title><link>http://www.blogjava.net/hwpok/archive/2014/07/12/415730.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 12 Jul 2014 12:06:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2014/07/12/415730.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/415730.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2014/07/12/415730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/415730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/415730.html</trackback:ping><description><![CDATA[二叉树的遍历有三种方式，如下： 
<p style="text-indent: 2em">（1）前序遍历（DLR），首先访问根结点，然后遍历左子树，最后遍历右子树。简记根-左-右。</p>
<p style="text-indent: 2em">（2）中序遍历（LDR），首先遍历左子树，然后访问根结点，最后遍历右子树。简记左-根-右。 </p>
<p style="text-indent: 2em">（3）后序遍历（LRD），首先遍历左子树，然后遍历右子树，最后访问根结点。简记左-右-根。&nbsp; </p>
<p style="text-indent: 2em"><font size="3"><font face="宋体">&nbsp;</font></font><a href="http://img.bimg.126.net/photo/zHueoeGuWOHQgDYaThKVyQ==/4222406125637381144.jpg" target="_blank"><img alt="二叉树的遍历(一) - summer - VFP等级考试的天空" src="http://img.bimg.126.net/photo/zHueoeGuWOHQgDYaThKVyQ==/4222406125637381144.jpg" __1405163343859__="ev_1270916329" /></a>&nbsp; </p>
<p style="text-indent: 2em">例1：如上图所示的二叉树，若按前序遍历，则其输出序列为&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 。若按中序遍历，则其输出序列为&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 。若按后序遍历，则其输出序列为&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 。</p>
<p style="text-indent: 2em">前序：根A，A的左子树B，B的左子树没有，看右子树，为D，所以A-B-D。再来看A的右子树，根C，左子树E，E的左子树F，E的右子树G，G的左子树为H，没有了结束。连起来为C-E-F-G-H,最<font color="#ff0000">后结果为ABDCEFGH</font></p>
<p style="text-indent: 2em">中序：先访问根的左子树,B没有左子树，其有右子树D，D无左子树，下面访问树的根A，连起来是BDA。</p>
<p style="text-indent: 2em">再访问根的右子树，C的左子树的左子树是F，F的根E，E的右子树有左子树是H，再从H出发找到G，到此C的左子树结束，找到根C，无右子树，结束。连起来是FEHGC,&nbsp; <font color="#ff0000">中序结果连起来是BDAFEHGC</font></p>
<p style="text-indent: 2em">后序：B无左子树，有右子树D，再到根B。再看右子树，最下面的左子树是F，其根的右子树的左子树是H，再到H的根G，再到G的根E，E的根C无右子树了，直接到C，这时再和B找它们其有的根A，所以连起来是<font color="#ff0000">DBFHGECA</font> </p>
<p style="text-indent: 2em">例2:有下列二叉树，对此二叉树前序遍历的结果为（&nbsp;&nbsp;&nbsp; ）。</p>
<p style="text-indent: 2em"><a href="http://img.bimg.126.net/photo/ZA1mghKJwgfyGI0SEahlsw==/4222406125637381387.jpg" target="_blank"><img alt="二叉树的遍历(一) - summer - VFP等级考试的天空" src="http://img.bimg.126.net/photo/ZA1mghKJwgfyGI0SEahlsw==/4222406125637381387.jpg" __1405163343859__="ev_2243651955" /></a></p>
<p style="text-indent: 2em">A）ACBEDGFH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B）ABDGCEHF</p>
<p style="text-indent: 2em">C）HGFEDCBA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D）ABCDEFGH</p>
<p style="text-indent: 2em"><font color="#ff0000"><strong>解析：先根A，左子树先根B，B无左子树，其右子树，先根D，在左子树G，连起来是ABDG。 A的右子树，先根C，C左子树E，E无左子树，有右子树为H，C的右子树只有F，连起来是CEHF。整个连起来是B答案 ABDGCEHF。</strong></font> </p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">例3：已知二叉树后序遍历是DABEC，中序遍历序列是DEBAC，它的前序遍历序列是(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp; 。</p>
<p style="text-indent: 2em">A）CEDBA&nbsp; B）ACBED C）DECAB D）DEABC</p>
<p style="text-indent: 2em"><font color="#ff0000"><strong>解析：由后序遍历可知，C为根结点，由中序遍历可知，C左边的是左子树含DEBA，C右边无结点，知根结点无右子树。先序遍历先访问根C，答案中只有A以C开头，为正确答案。</strong></font> </p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">例4：&nbsp;&nbsp;如下二叉树中序遍历的结果是（　　）。</p>
<p style="text-indent: 2em"><a href="http://img.bimg.126.net/photo/EYekuY2RnOYZqi5qVjmSVg==/2030279007014708447.jpg" target="_blank"><img alt="二叉树的遍历(一) - summer - VFP等级考试的天空" src="http://img.bimg.126.net/photo/EYekuY2RnOYZqi5qVjmSVg==/2030279007014708447.jpg" __1405163343859__="ev_7556495803" /></a>&nbsp;</p>
<p style="text-indent: 2em">A). ACBDFEG&nbsp; B). ACBDFGE&nbsp; C).ABDCGEF&nbsp; D).FCADBEG</p>
<p style="text-indent: 2em"><strong><font color="#339966">解析:首先中序遍历根F会把左右子树分开，F不会在答案的开头和结尾，排除C和D。在看F的右子树，G是E的右子树，中序遍历先访问E，再访问G，E在G前面，排除B。答案为A。</font></strong></p><font color="#339966">
<p style="text-indent: 2em"><strong>&nbsp;</strong></p>
<p style="text-indent: 2em"><font color="#000000">例5：如下二叉树后序遍历的结果是（　　）。</font></p>
<p style="text-indent: 2em"><a href="http://img.bimg.126.net/photo/9vCgq6xSfKV7hiehj-6xsQ==/2030279007014708625.jpg" target="_blank"><strong><img alt="二叉树的遍历(一) - summer - VFP等级考试的天空" src="http://img.bimg.126.net/photo/9vCgq6xSfKV7hiehj-6xsQ==/2030279007014708625.jpg" __1405163343859__="ev_4300424129" /></strong></a></p>
<p style="text-indent: 2em"><font color="#000000">A)&nbsp; ABCDEF&nbsp; B) DBEAFC&nbsp; C)ABDECF&nbsp; D)DEBFCA </font></p>
<p style="text-indent: 2em"><strong>解析：后序的最后一个必须是二叉树的根，快速判断答案为D。</strong></p></font><img src ="http://www.blogjava.net/hwpok/aggbug/415730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2014-07-12 20:06 <a href="http://www.blogjava.net/hwpok/archive/2014/07/12/415730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>万能分页标签</title><link>http://www.blogjava.net/hwpok/archive/2014/06/20/414959.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 20 Jun 2014 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2014/06/20/414959.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/414959.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2014/06/20/414959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/414959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/414959.html</trackback:ping><description><![CDATA[&nbsp;2010写的一个jsp分页标签, 基本能实现任何效果分页(如谷歌, 百度分页, AJAX分页等), 并且能保存查询参数, 自认为比较强大, 下面记录使用方法:<br />&nbsp;先上一个效果:<br />&nbsp;<img alt="" src="http://www.blogjava.net/images/blogjava_net/hwpok/20101022115453.jpg" width="719" height="167" /><br />
<div><br />1. pagebar.jar加入lib<br /><br /></div>
<div></div>
<div>2. action里代码(最少只需要加入3行代码):</div>
<div>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">IConditionHelper&nbsp;helper&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ConditionHelper.getInstance(ServletActionContext.getRequest());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserLstReq&nbsp;userLstReq&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;UserLstReq();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userLstReq.setUserName(userName);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userLstReq.setBeginIndex(helper.getBeginIndex());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userLstReq.setPageSize(helper.getPageSize());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;helper.getCondition(userLstReq,&nbsp;UserLstReq.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserLstRes&nbsp;res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;userService.queryUsers(userLstReq);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ServletActionContext.getRequest();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;res.getResultLst());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">page</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BasePageBarBean(helper,&nbsp;res.getCount()));</span></div>&nbsp;&nbsp;&nbsp;<br />
<div></div><br />3. jsp代码(最好是写在一jsp里, 再include方便更改)<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://www.huiwanpeng.com</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;prefix</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">p</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">p:pagebar&nbsp;totalRowCount</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${page.totalRowCount}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${page.action}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;pageSize</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${page.pageSize}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;currentPageNum</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">${page.currentPageNum}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;disableCss</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">color:green</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;总行数#totalRowCount#&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;总页数#totalPageCount#&nbsp;&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;当前第#currentPageNum#页&nbsp;&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;每页数#pageSize#&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callFirstPageFun#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">第一页</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;|</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callForePageFun#</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#forePageDisableCss#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">上一页</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;|</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callNextPageFun#</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#nextPageDisableCss#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">下一页</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callLastPageFun#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">最后页</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">p:loop&nbsp;positiveStep</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;negativeStep</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">4</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;isFill</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;currentPageCss</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">color:red</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#currentPageCss#</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callLoopPageFun#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">#currentPageNum#&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">p:loop</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#inputPageNumId#</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">width:20px</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">go</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#callGoFun#</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">p:pagebar</span><span style="color: #000000">&gt;</span></div><br /></div><img src ="http://www.blogjava.net/hwpok/aggbug/414959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2014-06-20 11:53 <a href="http://www.blogjava.net/hwpok/archive/2014/06/20/414959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>优化Servlet配置为web.xml瘦身</title><link>http://www.blogjava.net/hwpok/archive/2013/08/10/402662.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 10 Aug 2013 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2013/08/10/402662.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/402662.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2013/08/10/402662.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/402662.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/402662.html</trackback:ping><description><![CDATA[<p>以往每添加一个Servlet就要在web.xml里添加<servlet><servlet-mapping>,随着项目的进度,Servlet数目越来越可观.web.xml里也密密麻麻的排满了<servlet><servlet-mapping>这些食之无味弃之崩溃的东西,有一种方法可以改善这种境况.</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">InvokerServletservlet-name&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />org.apache.catalina.servlets.InvokerServlet&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />servlet-class&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">debugparam-name&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">0param-value&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />init-param&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">-1load-on-startup&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />servlet&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">InvokerServletservlet-name&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/servlet/*url-pattern&gt;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />servlet-mapping&gt;</span></div>
<p><br />ok,现在web.xml里保留这一个Servlet配置就可以满足所有的Servlet调用了,比如调用UserManagerService这个Servlet,在页面表单里这样写:</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="f"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="/servlet/com.mashiguang.<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />servlet.UserManagerService"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">submit</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />form&gt;</span></div>
<p><br />注意表单action"/Servlet/"后面是这个Servletclass的全名，以上是Servlet配置为web.xml瘦身. <br /><br /><br /><br />&nbsp;<br /><br /></p><img src ="http://www.blogjava.net/hwpok/aggbug/402662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2013-08-10 20:01 <a href="http://www.blogjava.net/hwpok/archive/2013/08/10/402662.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java方法的可变参数类型</title><link>http://www.blogjava.net/hwpok/archive/2013/05/19/399459.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 18 May 2013 17:46:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2013/05/19/399459.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/399459.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2013/05/19/399459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/399459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/399459.html</trackback:ping><description><![CDATA[<span>
<p class="alt"></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;dealArray(</span><span style="color: #0000ff">int</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;intArray)<br /><img id="Codehighlighter1_46_149_Open_Image" onclick="this.style.display='none'; Codehighlighter1_46_149_Open_Text.style.display='none'; Codehighlighter1_46_149_Closed_Image.style.display='inline'; Codehighlighter1_46_149_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_46_149_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_46_149_Closed_Text.style.display='none'; Codehighlighter1_46_149_Open_Image.style.display='inline'; Codehighlighter1_46_149_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_46_149_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_46_149_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;:&nbsp;intArray)&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />可这样调用:<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />dealArray(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">);&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />也可以这样调用:<br /><img id="Codehighlighter1_211_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_211_219_Open_Text.style.display='none'; Codehighlighter1_211_219_Closed_Image.style.display='inline'; Codehighlighter1_211_219_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_211_219_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_211_219_Closed_Text.style.display='none'; Codehighlighter1_211_219_Open_Image.style.display='inline'; Codehighlighter1_211_219_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;intArray&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_211_219_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_211_219_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">}</span></span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />dealArray(intArray);&nbsp;&nbsp;</span></div>
<p class="alt"></p></span><img src ="http://www.blogjava.net/hwpok/aggbug/399459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2013-05-19 01:46 <a href="http://www.blogjava.net/hwpok/archive/2013/05/19/399459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA泛型 忘了</title><link>http://www.blogjava.net/hwpok/archive/2013/05/19/399458.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 18 May 2013 16:23:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2013/05/19/399458.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/399458.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2013/05/19/399458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/399458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/399458.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="font-family: 宋体">1.我们可以这样</span><span style="font-family: Times New Roman">"public class Box&lt;T&gt;"</span><span style="font-family: 宋体">定义一个泛型类.<br />&nbsp; 在这个定义中，使用了一个类型变量</span><span style="font-family: Times New Roman">(type variable) T</span><span style="font-family: 宋体">，而且</span><span style="font-family: Times New Roman">T</span><span style="font-family: 宋体">能够在</span><span style="font-family: Times New Roman">Box</span><span style="font-family: 宋体">类之内的任何地方被使用。<br />&nbsp; 这中定义的方法其实并不复杂，并且在接口</span><span style="font-family: Times New Roman">(interface)</span><span style="font-family: 宋体">中也被使用。<br />&nbsp; 实际上，</span><span style="font-family: Times New Roman">T</span><span style="font-family: 宋体">可以看作是一种特殊的数据类型，它的值就是我们要传递给它的参数，<br />&nbsp; 参数的类型可以是类，也可以是接口，或者其他类型的变量，但是却不能是原始类型</span><span style="font-family: Times New Roman">(primitive)</span><span style="font-family: 宋体">的数据。<br /><br />2.我们可以这样public &lt;T&gt; void test(T t){}定义一个泛型方法.<br />&nbsp;&nbsp;&lt;T&gt;是用于定义泛型方法, 不加&lt;T&gt; 而在方法的参数中使用T会报错.<br /></span></span></p><img src ="http://www.blogjava.net/hwpok/aggbug/399458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2013-05-19 00:23 <a href="http://www.blogjava.net/hwpok/archive/2013/05/19/399458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打包JAR 调用JAR 抓取网页乱码, 帮朋友写的一段小程序</title><link>http://www.blogjava.net/hwpok/archive/2013/03/15/396466.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 15 Mar 2013 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2013/03/15/396466.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/396466.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2013/03/15/396466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/396466.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/396466.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA代码: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import&nbsp;java.io.BufferedReader;import&nbsp;java.io.File;import&nbsp;java.io.FileWriter;i...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2013/03/15/396466.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/396466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2013-03-15 10:15 <a href="http://www.blogjava.net/hwpok/archive/2013/03/15/396466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JTable可编辑</title><link>http://www.blogjava.net/hwpok/archive/2012/12/08/392674.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 08 Dec 2012 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/12/08/392674.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/392674.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/12/08/392674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/392674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/392674.html</trackback:ping><description><![CDATA[/**<br />&nbsp;* &lt;ul&gt;<br />&nbsp;* &lt;li&gt;Title:[FileFieldEditor]&lt;/li&gt;<br />&nbsp;* &lt;li&gt;Description: [JTable可编辑]&lt;/li&gt;<br />&nbsp;* &lt;li&gt;Copyright 2009 Upengs Co., Ltd.&lt;/li&gt;<br />&nbsp;* &lt;li&gt;All right reserved.&lt;/li&gt;<br />&nbsp;* &lt;li&gt;Created by [Huyvanpull] [2012-12-6]&lt;/li&gt;<br />&nbsp;* &lt;li&gt;Midified by [modifier] [modified time]&lt;/li&gt;<br />&nbsp;* &lt;/ul&gt;<br />&nbsp;* @version 1.0&nbsp; <br />&nbsp;*/<br />@SuppressWarnings("serial")<br />public class FileFieldEditor extends JComboBox implements TableCellEditor<br />{<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** EventListenerList:保存EventListener 列表的类 */<br />&nbsp;&nbsp;&nbsp; private EventListenerList listenerList = new EventListenerList();<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** ChangeEvent用于通知感兴趣的参与者事件源中的状态已发生更改 */<br />&nbsp;&nbsp;&nbsp; private ChangeEvent changeEvent = new ChangeEvent(this);<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; *&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; *&lt;li&gt;Description:[构造方法]&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; *&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public FileFieldEditor(String[] fileFields)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(String fileField : fileFields)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.addItem(fileField);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 请求终止编辑操作可以包含单元格的JTable收到，也可以从编辑器组件本身（如这里的JComboBox）获得<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * addActionListener(newActionListener(){ publicvoid<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * actionPerformed(ActionEvent e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * System.out.println("ActionListener");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * //如同stopCellEditing，都是调用fireEditingStopped()方法 fireEditingStopped(); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public void addCellEditorListener(CellEditorListener l)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listenerList.add(CellEditorListener.class, l);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public void removeCellEditorListener(CellEditorListener l)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listenerList.remove(CellEditorListener.class, l);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private void fireEditingStopped()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CellEditorListener listener;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] listeners = listenerList.getListenerList();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; listeners.length; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (listeners[i] == CellEditorListener.class)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 之所以是i+1，是因为一个为CellEditorListener.class（Class对象），<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 接着的是一个CellEditorListener的实例<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listener = (CellEditorListener) listeners[i + 1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 让changeEvent去通知编辑器已经结束编辑<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 在editingStopped方法中，JTable调用getCellEditorValue()取回单元格的值，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 并且把这个值传递给TableValues(TableModel)的setValueAt()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listener.editingStopped(changeEvent);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public void cancelCellEditing()<br />&nbsp;&nbsp;&nbsp; {}<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 编辑其中一个单元格，再点击另一个单元格时，调用。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public boolean stopCellEditing()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 可以注释掉下面的fireEditingStopped();然后在GenderEditor的构造函数中把<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // addActionListener()的注释去掉（这时请求终止编辑操作从JComboBox获得），<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // System.out.println("编辑其中一个单元格，再点击另一个单元格时，调用。");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 请求终止编辑操作从JTable获得<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fireEditingStopped();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 为一个单元格初始化编辑时，getTableCellEditorComponent被调用<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public Component getTableCellEditorComponent(JTable table, Object value,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean isSelected, int row, int column)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s = String.valueOf(value);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setSelectedItem(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 询问编辑器它是否可以使用 anEvent 开始进行编辑。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public boolean isCellEditable(EventObject anEvent)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 如果应该选择正编辑的单元格，则返回true，否则返回 false。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public boolean shouldSelectCell(EventObject anEvent)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 返回值传递给TableValue（TableModel）中的setValueAt()方法<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public Object getCellEditorValue()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.getSelectedItem().toString();<br />&nbsp;&nbsp;&nbsp; }<br />}<img src ="http://www.blogjava.net/hwpok/aggbug/392674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-12-08 23:12 <a href="http://www.blogjava.net/hwpok/archive/2012/12/08/392674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java  获取文件 总行数  比较</title><link>http://www.blogjava.net/hwpok/archive/2012/12/06/392543.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Thu, 06 Dec 2012 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/12/06/392543.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/392543.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/12/06/392543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/392543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/392543.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.BufferedInputStream;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.FileInputStream;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.FileReader;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.InputStream;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.LineNumberReader;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Calendar;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_210_1553_Open_Image" onclick="this.style.display='none'; Codehighlighter1_210_1553_Open_Text.style.display='none'; Codehighlighter1_210_1553_Closed_Image.style.display='inline'; Codehighlighter1_210_1553_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_210_1553_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_210_1553_Closed_Text.style.display='none'; Codehighlighter1_210_1553_Open_Image.style.display='inline'; Codehighlighter1_210_1553_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestRowCount&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_210_1553_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_210_1553_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_252_496_Open_Image" onclick="this.style.display='none'; Codehighlighter1_252_496_Open_Text.style.display='none'; Codehighlighter1_252_496_Closed_Image.style.display='inline'; Codehighlighter1_252_496_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_252_496_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_252_496_Closed_Text.style.display='none'; Codehighlighter1_252_496_Open_Image.style.display='inline'; Codehighlighter1_252_496_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_252_496_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_252_496_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;datestart&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance().getTimeInMillis();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getFileLineCounts(</span><span style="color: #000000">"</span><span style="color: #000000">XXX</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(count);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;dateend&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance().getTimeInMillis();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println((dateend&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;datestart)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1000</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_552_1003_Open_Image" onclick="this.style.display='none'; Codehighlighter1_552_1003_Open_Text.style.display='none'; Codehighlighter1_552_1003_Closed_Image.style.display='inline'; Codehighlighter1_552_1003_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_552_1003_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_552_1003_Closed_Text.style.display='none'; Codehighlighter1_552_1003_Open_Image.style.display='inline'; Codehighlighter1_552_1003_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getFileLineCount(String&nbsp;filename)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_552_1003_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_552_1003_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cnt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LineNumberReader&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img id="Codehighlighter1_609_819_Open_Image" onclick="this.style.display='none'; Codehighlighter1_609_819_Open_Text.style.display='none'; Codehighlighter1_609_819_Closed_Image.style.display='inline'; Codehighlighter1_609_819_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_609_819_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_609_819_Closed_Text.style.display='none'; Codehighlighter1_609_819_Open_Image.style.display='inline'; Codehighlighter1_609_819_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_609_819_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_609_819_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LineNumberReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileReader(filename));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@SuppressWarnings(</span><span style="color: #000000">"</span><span style="color: #000000">unused</span><span style="color: #000000">"</span><span style="color: #000000">)<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;lineRead&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br /><img id="Codehighlighter1_777_782_Open_Image" onclick="this.style.display='none'; Codehighlighter1_777_782_Open_Text.style.display='none'; Codehighlighter1_777_782_Closed_Image.style.display='inline'; Codehighlighter1_777_782_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_777_782_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_777_782_Closed_Text.style.display='none'; Codehighlighter1_777_782_Open_Image.style.display='inline'; Codehighlighter1_777_782_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((lineRead&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;reader.readLine())&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_777_782_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_777_782_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;reader.getLineNumber();<br /><img id="Codehighlighter1_842_884_Open_Image" onclick="this.style.display='none'; Codehighlighter1_842_884_Open_Text.style.display='none'; Codehighlighter1_842_884_Closed_Image.style.display='inline'; Codehighlighter1_842_884_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_842_884_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_842_884_Closed_Text.style.display='none'; Codehighlighter1_842_884_Open_Image.style.display='inline'; Codehighlighter1_842_884_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_842_884_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_842_884_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br /><img id="Codehighlighter1_894_986_Open_Image" onclick="this.style.display='none'; Codehighlighter1_894_986_Open_Text.style.display='none'; Codehighlighter1_894_986_Closed_Image.style.display='inline'; Codehighlighter1_894_986_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_894_986_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_894_986_Closed_Text.style.display='none'; Codehighlighter1_894_986_Open_Image.style.display='inline'; Codehighlighter1_894_986_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_894_986_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_894_986_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_903_928_Open_Image" onclick="this.style.display='none'; Codehighlighter1_903_928_Open_Text.style.display='none'; Codehighlighter1_903_928_Closed_Image.style.display='inline'; Codehighlighter1_903_928_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_903_928_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_903_928_Closed_Text.style.display='none'; Codehighlighter1_903_928_Open_Image.style.display='inline'; Codehighlighter1_903_928_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_903_928_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_903_928_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();<br /><img id="Codehighlighter1_951_982_Open_Image" onclick="this.style.display='none'; Codehighlighter1_951_982_Open_Text.style.display='none'; Codehighlighter1_951_982_Closed_Image.style.display='inline'; Codehighlighter1_951_982_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_951_982_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_951_982_Closed_Text.style.display='none'; Codehighlighter1_951_982_Open_Image.style.display='inline'; Codehighlighter1_951_982_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_951_982_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_951_982_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cnt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_1060_1551_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1060_1551_Open_Text.style.display='none'; Codehighlighter1_1060_1551_Closed_Image.style.display='inline'; Codehighlighter1_1060_1551_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1060_1551_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1060_1551_Closed_Text.style.display='none'; Codehighlighter1_1060_1551_Open_Image.style.display='inline'; Codehighlighter1_1060_1551_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getFileLineCounts(String&nbsp;filename)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1060_1551_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1060_1551_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cnt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img id="Codehighlighter1_1108_1371_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1108_1371_Open_Text.style.display='none'; Codehighlighter1_1108_1371_Closed_Image.style.display='inline'; Codehighlighter1_1108_1371_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1108_1371_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1108_1371_Closed_Text.style.display='none'; Codehighlighter1_1108_1371_Open_Image.style.display='inline'; Codehighlighter1_1108_1371_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1108_1371_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1108_1371_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedInputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileInputStream(filename));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[</span><span style="color: #000000">1024</span><span style="color: #000000">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;readChars&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img id="Codehighlighter1_1268_1367_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1268_1367_Open_Text.style.display='none'; Codehighlighter1_1268_1367_Closed_Image.style.display='inline'; Codehighlighter1_1268_1367_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1268_1367_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1268_1367_Closed_Text.style.display='none'; Codehighlighter1_1268_1367_Open_Image.style.display='inline'; Codehighlighter1_1268_1367_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((readChars&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;is.read(c))&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1268_1367_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1268_1367_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_1310_1362_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1310_1362_Open_Text.style.display='none'; Codehighlighter1_1310_1362_Closed_Image.style.display='inline'; Codehighlighter1_1310_1362_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1310_1362_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1310_1362_Closed_Text.style.display='none'; Codehighlighter1_1310_1362_Open_Image.style.display='inline'; Codehighlighter1_1310_1362_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;readChars;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">i)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1310_1362_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1310_1362_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_1336_1356_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1336_1356_Open_Text.style.display='none'; Codehighlighter1_1336_1356_Closed_Image.style.display='inline'; Codehighlighter1_1336_1356_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1336_1356_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1336_1356_Closed_Text.style.display='none'; Codehighlighter1_1336_1356_Open_Image.style.display='inline'; Codehighlighter1_1336_1356_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c[i]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\n</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1336_1356_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1336_1356_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">cnt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_1394_1436_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1394_1436_Open_Text.style.display='none'; Codehighlighter1_1394_1436_Closed_Image.style.display='inline'; Codehighlighter1_1394_1436_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1394_1436_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1394_1436_Closed_Text.style.display='none'; Codehighlighter1_1394_1436_Open_Image.style.display='inline'; Codehighlighter1_1394_1436_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1394_1436_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1394_1436_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br /><img id="Codehighlighter1_1446_1534_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1446_1534_Open_Text.style.display='none'; Codehighlighter1_1446_1534_Closed_Image.style.display='inline'; Codehighlighter1_1446_1534_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1446_1534_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1446_1534_Closed_Text.style.display='none'; Codehighlighter1_1446_1534_Open_Image.style.display='inline'; Codehighlighter1_1446_1534_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1446_1534_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1446_1534_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_1455_1476_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1455_1476_Open_Text.style.display='none'; Codehighlighter1_1455_1476_Closed_Image.style.display='inline'; Codehighlighter1_1455_1476_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1455_1476_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1455_1476_Closed_Text.style.display='none'; Codehighlighter1_1455_1476_Open_Image.style.display='inline'; Codehighlighter1_1455_1476_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1455_1476_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1455_1476_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br /><img id="Codehighlighter1_1499_1530_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1499_1530_Open_Text.style.display='none'; Codehighlighter1_1499_1530_Closed_Image.style.display='inline'; Codehighlighter1_1499_1530_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1499_1530_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1499_1530_Closed_Text.style.display='none'; Codehighlighter1_1499_1530_Open_Image.style.display='inline'; Codehighlighter1_1499_1530_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1499_1530_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1499_1530_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cnt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>总结:<br />每行的字符较多时, 使用第一个方法效率较高<br />每行的字符较少时, 使用第二个方法效率较高<img src ="http://www.blogjava.net/hwpok/aggbug/392543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-12-06 13:39 <a href="http://www.blogjava.net/hwpok/archive/2012/12/06/392543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ContentType  大全</title><link>http://www.blogjava.net/hwpok/archive/2012/07/16/383226.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Mon, 16 Jul 2012 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/07/16/383226.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/383226.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/07/16/383226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/383226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/383226.html</trackback:ping><description><![CDATA[文档类型&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;:&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;解释<br />&nbsp;&nbsp;.* = application/octet-stream <br />&nbsp;&nbsp;.001 = application/x-001 <br />&nbsp;&nbsp;.301 = application/x-301 <br />&nbsp;&nbsp;.323 = text/h323 <br />&nbsp;&nbsp;.906 = application/x-906 <br />&nbsp;&nbsp;.907 = drawing/907 <br />&nbsp;&nbsp;.a11 = application/x-a11 <br />&nbsp;&nbsp;.acp = audio/x-mei-aac <br />&nbsp;&nbsp;.ai = application/postscript <br />&nbsp;&nbsp;.aif = audio/aiff <br />&nbsp;&nbsp;.aifc = audio/aiff <br />&nbsp;&nbsp;.aiff = audio/aiff <br />&nbsp;&nbsp;.anv = application/x-anv <br />&nbsp;&nbsp;.asa = text/asa <br />&nbsp;&nbsp;.asf = video/x-ms-asf <br />&nbsp;&nbsp;.asp = text/asp <br />&nbsp;&nbsp;.asx = video/x-ms-asf <br />&nbsp;&nbsp;.au = audio/basic <br />&nbsp;&nbsp;.avi = video/avi <br />&nbsp;&nbsp;.awf = application/vnd.adobe.workflow <br />&nbsp;&nbsp;.biz = text/xml <br />&nbsp;&nbsp;.bmp = application/x-bmp <br />&nbsp;&nbsp;.bot = application/x-bot <br />&nbsp;&nbsp;.c4t = application/x-c4t <br />&nbsp;&nbsp;.c90 = application/x-c90 <br />&nbsp;&nbsp;.cal = application/x-cals <br />&nbsp;&nbsp;.cat = application/vnd.ms-pki.seccat <br />&nbsp;&nbsp;.cdf = application/x-netcdf <br />&nbsp;&nbsp;.cdr = application/x-cdr <br />&nbsp;&nbsp;.cel = application/x-cel <br />&nbsp;&nbsp;.cer = application/x-x509-ca-cert <br />&nbsp;&nbsp;.cg4 = application/x-g4 <br />&nbsp;&nbsp;.cgm = application/x-cgm <br />&nbsp;&nbsp;.cit = application/x-cit <br />&nbsp;&nbsp;.class = java/* <br />&nbsp;&nbsp;.cml = text/xml :客户端浏览器按XML格式进行解析文档<br />&nbsp;&nbsp;.cmp = application/x-cmp <br />&nbsp;&nbsp;.cmx = application/x-cmx <br />&nbsp;&nbsp;.cot = application/x-cot <br />&nbsp;&nbsp;.crl = application/pkix-crl <br />&nbsp;&nbsp;.crt = application/x-x509-ca-cert <br />&nbsp;&nbsp;.csi = application/x-csi <br />&nbsp;&nbsp;.css = text/css :客户端浏览器按CSS格式进行解析文档<br />.csv = application/vnd.ms-excel :类EXCEL 文档<br />&nbsp;&nbsp;.cut = application/x-cut <br />&nbsp;&nbsp;.dbf = application/x-dbf <br />&nbsp;&nbsp;.dbm = application/x-dbm <br />&nbsp;&nbsp;.dbx = application/x-dbx <br />&nbsp;&nbsp;.dcd = text/xml :客户端浏览器按XML格式进行解析文档<br />&nbsp;&nbsp;.dcx = application/x-dcx <br />&nbsp;&nbsp;.der = application/x-x509-ca-cert <br />&nbsp;&nbsp;.dgn = application/x-dgn <br />&nbsp;&nbsp;.dib = application/x-dib <br />&nbsp;&nbsp;.dll = application/x-msdownload <br />&nbsp;&nbsp;.doc = application/msword <br />&nbsp;&nbsp;.dot = application/msword <br />&nbsp;&nbsp;.drw = application/x-drw <br />&nbsp;&nbsp;.dtd = text/xml :客户端浏览器按XML格式进行解析文档<br />&nbsp;&nbsp;.dwf = Model/vnd.dwf <br />&nbsp;&nbsp;.dwf = application/x-dwf <br />&nbsp;&nbsp;.dwg = application/x-dwg <br />&nbsp;&nbsp;.dxb = application/x-dxb <br />&nbsp;&nbsp;.dxf = application/x-dxf <br />&nbsp;&nbsp;.edn = application/vnd.adobe.edn <br />&nbsp;&nbsp;.emf = application/x-emf <br />&nbsp;&nbsp;.eml = message/rfc822 <br />&nbsp;&nbsp;.ent = text/xml :客户端浏览器按XML格式进行解析文档<br />&nbsp;&nbsp;.epi = application/x-epi <br />&nbsp;&nbsp;.eps = application/x-ps <br />&nbsp;&nbsp;.eps = application/postscript <br />&nbsp;&nbsp;.etd = application/x-ebx <br />&nbsp;&nbsp;.exe = application/x-msdownload <br />&nbsp;&nbsp;.fax = image/fax <br />&nbsp;&nbsp;.fdf = application/vnd.fdf <br />&nbsp;&nbsp;.fif = application/fractals <br />&nbsp;&nbsp;.fo = text/xml :客户端浏览器按XML格式进行解析文档<br />&nbsp;&nbsp;.frm = application/x-frm <br />&nbsp;&nbsp;.g4 = application/x-g4 <br />&nbsp;&nbsp;.gbr = application/x-gbr <br />&nbsp;&nbsp;.gcd = application/x-gcd <br />&nbsp;&nbsp;.gif = image/gif <br />&nbsp;&nbsp;.gl2 = application/x-gl2 <br />&nbsp;&nbsp;.gp4 = application/x-gp4 <br />&nbsp;&nbsp;.hgl = application/x-hgl <br />&nbsp;&nbsp;.hmr = application/x-hmr <br />&nbsp;&nbsp;.hpg = application/x-hpgl <br />&nbsp;&nbsp;.hpl = application/x-hpl <br />&nbsp;&nbsp;.hqx = application/mac-binhex40 <br />&nbsp;&nbsp;.hrf = application/x-hrf <br />&nbsp;&nbsp;.hta = application/hta <br />&nbsp;&nbsp;.htc = text/x-component <br />&nbsp;&nbsp;.htm = text/html :客户端浏览器按超文本格式进行解析文档<br />&nbsp;&nbsp;.html = text/html :客户端浏览器按超文本格式进行解析文档<br />&nbsp;&nbsp;.htt = text/webviewhtml <br />&nbsp;&nbsp;.htx = text/html :客户端浏览器按超文本格式进行解析文档<br />&nbsp;&nbsp;.icb = application/x-icb <br />&nbsp;&nbsp;.ico = image/x-icon <br />&nbsp;&nbsp;.ico = application/x-ico <br />&nbsp;&nbsp;.iff = application/x-iff <br />&nbsp;&nbsp;.ig4 = application/x-g4 <br />&nbsp;&nbsp;.igs = application/x-igs <br />&nbsp;&nbsp;.iii = application/x-iphone <br />&nbsp;&nbsp;.img = application/x-img <br />&nbsp;&nbsp;.ins = application/x-internet-signup <br />&nbsp;&nbsp;.isp = application/x-internet-signup <br />&nbsp;&nbsp;.IVF = video/x-ivf <br />&nbsp;&nbsp;.java = java/* <br />&nbsp;&nbsp;.jfif = image/jpeg <br />&nbsp;&nbsp;.jpe = image/jpeg <br />&nbsp;&nbsp;.jpe = application/x-jpe <br />&nbsp;&nbsp;.jpeg = image/jpeg <br />&nbsp;&nbsp;.jpg = image/jpeg <br />&nbsp;&nbsp;.jpg = application/x-jpg <br />&nbsp;&nbsp;.js = application/x-javascript <br />&nbsp;&nbsp;.jsp = text/html :客户端浏览器按超文本格式进行解析文档<br />&nbsp;&nbsp;.la1 = audio/x-liquid-file <br />&nbsp;&nbsp;.lar = application/x-laplayer-reg <br />&nbsp;&nbsp;.latex = application/x-latex <br />&nbsp;&nbsp;.lavs = audio/x-liquid-secure <br />&nbsp;&nbsp;.lbm = application/x-lbm <br />&nbsp;&nbsp;.lmsff = audio/x-la-lms <br />&nbsp;&nbsp;.ls = application/x-javascript <br />&nbsp;&nbsp;.ltr = application/x-ltr <br />&nbsp;&nbsp;.m1v = video/x-mpeg <br />&nbsp;&nbsp;.m2v = video/x-mpeg <br />&nbsp;&nbsp;.m3u = audio/mpegurl <br />&nbsp;&nbsp;.m4e = video/mpeg4 <br />&nbsp;&nbsp;.mac = application/x-mac <br />&nbsp;&nbsp;.man = application/x-troff-man <br />&nbsp;&nbsp;.math = text/xml <br />&nbsp;&nbsp;.mdb = application/msaccess <br />&nbsp;&nbsp;.mdb = application/x-mdb <br />&nbsp;&nbsp;.mfp = application/x-shockwave-flash <br />&nbsp;&nbsp;.mht = message/rfc822 <br />&nbsp;&nbsp;.mhtml = message/rfc822 <br />&nbsp;&nbsp;.mi = application/x-mi <br />&nbsp;&nbsp;.mid = audio/mid <br />&nbsp;&nbsp;.midi = audio/mid <br />&nbsp;&nbsp;.mil = application/x-mil <br />&nbsp;&nbsp;.mml = text/xml <br />&nbsp;&nbsp;.mnd = audio/x-musicnet-download <br />&nbsp;&nbsp;.mns = audio/x-musicnet-stream <br />&nbsp;&nbsp;.mocha = application/x-javascript <br />&nbsp;&nbsp;.movie = video/x-sgi-movie <br />&nbsp;&nbsp;.mp1 = audio/mp1 <br />&nbsp;&nbsp;.mp2 = audio/mp2 <br />&nbsp;&nbsp;.mp2v = video/mpeg <br />&nbsp;&nbsp;.mp3 = audio/mp3 <br />&nbsp;&nbsp;.mp4 = video/mpeg4 <br />&nbsp;&nbsp;.mpa = video/x-mpg <br />&nbsp;&nbsp;.mpd = application/vnd.ms-project <br />&nbsp;&nbsp;.mpe = video/x-mpeg <br />&nbsp;&nbsp;.mpeg = video/mpg <br />&nbsp;&nbsp;.mpg = video/mpg <br />&nbsp;&nbsp;.mpga = audio/rn-mpeg <br />&nbsp;&nbsp;.mpp = application/vnd.ms-project <br />&nbsp;&nbsp;.mps = video/x-mpeg <br />&nbsp;&nbsp;.mpt = application/vnd.ms-project <br />&nbsp;&nbsp;.mpv = video/mpg <br />&nbsp;&nbsp;.mpv2 = video/mpeg <br />&nbsp;&nbsp;.mpw = application/vnd.ms-project <br />&nbsp;&nbsp;.mpx = application/vnd.ms-project <br />&nbsp;&nbsp;.mtx = text/xml <br />&nbsp;&nbsp;.mxp = application/x-mmxp <br />&nbsp;&nbsp;.net = image/pnetvue <br />&nbsp;&nbsp;.nrf = application/x-nrf <br />&nbsp;&nbsp;.nws = message/rfc822 <br />&nbsp;&nbsp;.odc = text/x-ms-odc <br />&nbsp;&nbsp;.out = application/x-out <br />&nbsp;&nbsp;.p10 = application/pkcs10 <br />&nbsp;&nbsp;.p12 = application/x-pkcs12 <br />&nbsp;&nbsp;.p7b = application/x-pkcs7-certificates <br />&nbsp;&nbsp;.p7c = application/pkcs7-mime <br />&nbsp;&nbsp;.p7m = application/pkcs7-mime <br />&nbsp;&nbsp;.p7r = application/x-pkcs7-certreqresp <br />&nbsp;&nbsp;.p7s = application/pkcs7-signature <br />&nbsp;&nbsp;.pc5 = application/x-pc5 <br />&nbsp;&nbsp;.pci = application/x-pci <br />&nbsp;&nbsp;.pcl = application/x-pcl <br />&nbsp;&nbsp;.pcx = application/x-pcx <br />&nbsp;&nbsp;.pdf = application/pdf :客户端浏览器按PDF格式进行解析文档<br />&nbsp;&nbsp;.pdf = application/pdf <br />&nbsp;&nbsp;.pdx = application/vnd.adobe.pdx <br />&nbsp;&nbsp;.pfx = application/x-pkcs12 <br />&nbsp;&nbsp;.pgl = application/x-pgl <br />&nbsp;&nbsp;.pic = application/x-pic <br />&nbsp;&nbsp;.pko = application/vnd.ms-pki.pko <br />&nbsp;&nbsp;.pl = application/x-perl <br />&nbsp;&nbsp;.plg = text/html <br />&nbsp;&nbsp;.pls = audio/scpls <br />&nbsp;&nbsp;.plt = application/x-plt <br />&nbsp;&nbsp;.png = image/png <br />&nbsp;&nbsp;.png = application/x-png <br />&nbsp;&nbsp;.pot = application/vnd.ms-powerpoint <br />&nbsp;&nbsp;.ppa = application/vnd.ms-powerpoint <br />&nbsp;&nbsp;.ppm = application/x-ppm <br />&nbsp;&nbsp;.pps = application/vnd.ms-powerpoint <br />&nbsp;&nbsp;.ppt = application/vnd.ms-powerpoint <br />&nbsp;&nbsp;.ppt = application/x-ppt <br />&nbsp;&nbsp;.pr = application/x-pr <br />&nbsp;&nbsp;.prf = application/pics-rules <br />&nbsp;&nbsp;.prn = application/x-prn <br />&nbsp;&nbsp;.prt = application/x-prt <br />&nbsp;&nbsp;.ps = application/x-ps <br />&nbsp;&nbsp;.ps = application/postscript <br />&nbsp;&nbsp;.ptn = application/x-ptn <br />&nbsp;&nbsp;.pwz = application/vnd.ms-powerpoint <br />&nbsp;&nbsp;.r3t = text/vnd.rn-realtext3d <br />&nbsp;&nbsp;.ra = audio/vnd.rn-realaudio <br />&nbsp;&nbsp;.ram = audio/x-pn-realaudio <br />&nbsp;&nbsp;.ras = application/x-ras <br />&nbsp;&nbsp;.rat = application/rat-file <br />&nbsp;&nbsp;.rdf = text/xml <br />&nbsp;&nbsp;.rec = application/vnd.rn-recording <br />&nbsp;&nbsp;.red = application/x-red <br />&nbsp;&nbsp;.rgb = application/x-rgb <br />&nbsp;&nbsp;.rjs = application/vnd.rn-realsystem-rjs <br />&nbsp;&nbsp;.rjt = application/vnd.rn-realsystem-rjt <br />&nbsp;&nbsp;.rlc = application/x-rlc <br />&nbsp;&nbsp;.rle = application/x-rle <br />&nbsp;&nbsp;.rm = application/vnd.rn-realmedia <br />&nbsp;&nbsp;.rmf = application/vnd.adobe.rmf <br />&nbsp;&nbsp;.rmi = audio/mid <br />&nbsp;&nbsp;.rmj = application/vnd.rn-realsystem-rmj <br />&nbsp;&nbsp;.rmm = audio/x-pn-realaudio <br />&nbsp;&nbsp;.rmp = application/vnd.rn-rn_music_package <br />&nbsp;&nbsp;.rms = application/vnd.rn-realmedia-secure <br />&nbsp;&nbsp;.rmvb = application/vnd.rn-realmedia-vbr <br />&nbsp;&nbsp;.rmx = application/vnd.rn-realsystem-rmx <br />&nbsp;&nbsp;.rnx = application/vnd.rn-realplayer <br />&nbsp;&nbsp;.rp = image/vnd.rn-realpix <br />&nbsp;&nbsp;.rpm = audio/x-pn-realaudio-plugin <br />&nbsp;&nbsp;.rsml = application/vnd.rn-rsml <br />&nbsp;&nbsp;.rt = text/vnd.rn-realtext <br />&nbsp;&nbsp;.rtf = application/msword <br />&nbsp;&nbsp;.rtf = application/x-rtf <br />&nbsp;&nbsp;.rv = video/vnd.rn-realvideo <br />&nbsp;&nbsp;.sam = application/x-sam <br />&nbsp;&nbsp;.sat = application/x-sat <br />&nbsp;&nbsp;.sdp = application/sdp <br />&nbsp;&nbsp;.sdw = application/x-sdw <br />&nbsp;&nbsp;.sit = application/x-stuffit <br />&nbsp;&nbsp;.slb = application/x-slb <br />&nbsp;&nbsp;.sld = application/x-sld <br />&nbsp;&nbsp;.slk = drawing/x-slk <br />&nbsp;&nbsp;.smi = application/smil <br />&nbsp;&nbsp;.smil = application/smil <br />&nbsp;&nbsp;.smk = application/x-smk <br />&nbsp;&nbsp;.snd = audio/basic <br />&nbsp;&nbsp;.sol = text/plain <br />&nbsp;&nbsp;.sor = text/plain <br />&nbsp;&nbsp;.spc = application/x-pkcs7-certificates <br />&nbsp;&nbsp;.spl = application/futuresplash <br />&nbsp;&nbsp;.spp = text/xml <br />&nbsp;&nbsp;.ssm = application/streamingmedia <br />&nbsp;&nbsp;.sst = application/vnd.ms-pki.certstore <br />&nbsp;&nbsp;.stl = application/vnd.ms-pki.stl <br />&nbsp;&nbsp;.stm = text/html <br />&nbsp;&nbsp;.sty = application/x-sty <br />&nbsp;&nbsp;.svg = text/xml <br />&nbsp;&nbsp;.swf = application/x-shockwave-flash :客户端浏览器按&nbsp;&nbsp;Flash 格式进行解析文档<br />&nbsp;&nbsp;.tdf = application/x-tdf <br />&nbsp;&nbsp;.tg4 = application/x-tg4 <br />&nbsp;&nbsp;.tga = application/x-tga <br />&nbsp;&nbsp;.tif = image/tiff <br />&nbsp;&nbsp;.tif = application/x-tif <br />&nbsp;&nbsp;.tiff = image/tiff <br />&nbsp;&nbsp;.tld = text/xml <br />&nbsp;&nbsp;.top = drawing/x-top <br />&nbsp;&nbsp;.torrent = application/x-bittorrent <br />&nbsp;&nbsp;.tsd = text/xml <br />&nbsp;&nbsp;.txt = text/plain :客户端浏览器按&nbsp;&nbsp;纯文本 格式进行解析文档<br />&nbsp;&nbsp;.uin = application/x-icq <br />&nbsp;&nbsp;.uls = text/iuls <br />&nbsp;&nbsp;.vcf = text/x-vcard <br />&nbsp;&nbsp;.vda = application/x-vda <br />&nbsp;&nbsp;.vdx = application/vnd.visio <br />&nbsp;&nbsp;.vml = text/xml <br />&nbsp;&nbsp;.vpg = application/x-vpeg005 <br />&nbsp;&nbsp;.vsd = application/vnd.visio <br />&nbsp;&nbsp;.vsd = application/x-vsd <br />&nbsp;&nbsp;.vss = application/vnd.visio <br />&nbsp;&nbsp;.vst = application/vnd.visio <br />&nbsp;&nbsp;.vst = application/x-vst <br />&nbsp;&nbsp;.vsw = application/vnd.visio <br />&nbsp;&nbsp;.vsx = application/vnd.visio <br />&nbsp;&nbsp;.vtx = application/vnd.visio <br />&nbsp;&nbsp;.vxml = text/xml <br />&nbsp;&nbsp;.wav = audio/wav <br />&nbsp;&nbsp;.wax = audio/x-ms-wax <br />&nbsp;&nbsp;.wb1 = application/x-wb1 <br />&nbsp;&nbsp;.wb2 = application/x-wb2 <br />&nbsp;&nbsp;.wb3 = application/x-wb3 <br />&nbsp;&nbsp;.wbmp = image/vnd.wap.wbmp <br />&nbsp;&nbsp;.wiz = application/msword <br />&nbsp;&nbsp;.wk3 = application/x-wk3 <br />&nbsp;&nbsp;.wk4 = application/x-wk4 <br />&nbsp;&nbsp;.wkq = application/x-wkq <br />&nbsp;&nbsp;.wks = application/x-wks <br />&nbsp;&nbsp;.wm = video/x-ms-wm <br />&nbsp;&nbsp;.wma = audio/x-ms-wma <br />&nbsp;&nbsp;.wmd = application/x-ms-wmd <br />&nbsp;&nbsp;.wmf = application/x-wmf <br />&nbsp;&nbsp;.wml = text/vnd.wap.wml <br />&nbsp;&nbsp;.wmv = video/x-ms-wmv <br />&nbsp;&nbsp;.wmx = video/x-ms-wmx <br />&nbsp;&nbsp;.wmz = application/x-ms-wmz <br />&nbsp;&nbsp;.wp6 = application/x-wp6 <br />&nbsp;&nbsp;.wpd = application/x-wpd <br />&nbsp;&nbsp;.wpg = application/x-wpg <br />&nbsp;&nbsp;.wpl = application/vnd.ms-wpl <br />&nbsp;&nbsp;.wq1 = application/x-wq1 <br />&nbsp;&nbsp;.wr1 = application/x-wr1 <br />&nbsp;&nbsp;.wri = application/x-wri <br />&nbsp;&nbsp;.wrk = application/x-wrk <br />&nbsp;&nbsp;.ws = application/x-ws <br />&nbsp;&nbsp;.ws2 = application/x-ws <br />&nbsp;&nbsp;.wsc = text/scriptlet <br />&nbsp;&nbsp;.wsdl = text/xml <br />&nbsp;&nbsp;.wvx = video/x-ms-wvx <br />&nbsp;&nbsp;.xdp = application/vnd.adobe.xdp <br />&nbsp;&nbsp;.xdr = text/xml <br />&nbsp;&nbsp;.xfd = application/vnd.adobe.xfd <br />&nbsp;&nbsp;.xfdf = application/vnd.adobe.xfdf <br />&nbsp;&nbsp;.xhtml = text/html <br />&nbsp;&nbsp;.xls = application/vnd.ms-excel <br />&nbsp;&nbsp;.xls = application/x-xls <br />&nbsp;&nbsp;.xlw = application/x-xlw <br />&nbsp;&nbsp;.xml = text/xml <br />&nbsp;&nbsp;.xpl = audio/scpls <br />&nbsp;&nbsp;.xq = text/xml <br />&nbsp;&nbsp;.xql = text/xml <br />&nbsp;&nbsp;.xquery = text/xml <br />&nbsp;&nbsp;.xsd = text/xml <br />&nbsp;&nbsp;.xsl = text/xml <br />&nbsp;&nbsp;.xslt = text/xml <br />&nbsp;&nbsp;.xwd = application/x-xwd <br />&nbsp;&nbsp;.x_b = application/x-x_b <br />&nbsp;&nbsp;.x_t = application/x-x_t<br /><img src ="http://www.blogjava.net/hwpok/aggbug/383226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-07-16 14:13 <a href="http://www.blogjava.net/hwpok/archive/2012/07/16/383226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java  语言播报</title><link>http://www.blogjava.net/hwpok/archive/2012/06/09/380406.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 09 Jun 2012 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/06/09/380406.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/380406.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/06/09/380406.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/380406.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/380406.html</trackback:ping><description><![CDATA[<!--StartFragment -->

<div>http://sd.csdn.net/a/20111228/309754.html<br /><a href="http://azrael6619.iteye.com/blog/839134">http://azrael6619.iteye.com/blog/839134</a><br /><a href="http://hi.baidu.com/ceponline/blog/item/8e9562667684d02faa184c62.html">http://hi.baidu.com/ceponline/blog/item/8e9562667684d02faa184c62.html</a><br /><a href="http://com-xpp.iteye.com/blog/1523537">http://com-xpp.iteye.com/blog/1523537</a><br /></div><img src ="http://www.blogjava.net/hwpok/aggbug/380406.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-06-09 15:52 <a href="http://www.blogjava.net/hwpok/archive/2012/06/09/380406.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读utf8文件，第一行前多出一个问号</title><link>http://www.blogjava.net/hwpok/archive/2012/04/20/375365.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 20 Apr 2012 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/04/20/375365.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/375365.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/04/20/375365.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/375365.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/375365.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">BufferedReader&nbsp;br&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;UnicodeReader(in,&nbsp;Charset.defaultCharset().name()));&nbsp;</span></div><br /><br /><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_61_2255_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_2255_Open_Text.style.display='none'; Codehighlighter1_61_2255_Closed_Image.style.display='inline'; Codehighlighter1_61_2255_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_61_2255_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_61_2255_Closed_Text.style.display='none'; Codehighlighter1_61_2255_Open_Image.style.display='inline'; Codehighlighter1_61_2255_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;UnicodeReader&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Reader&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_61_2255_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_61_2255_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;PushbackInputStream&nbsp;internalIn;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;InputStreamReader&nbsp;&nbsp;&nbsp;internalIn2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultEnc;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;BOM_SIZE&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;<br /><img id="Codehighlighter1_270_366_Open_Image" onclick="this.style.display='none'; Codehighlighter1_270_366_Open_Text.style.display='none'; Codehighlighter1_270_366_Closed_Image.style.display='inline'; Codehighlighter1_270_366_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_270_366_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_270_366_Closed_Text.style.display='none'; Codehighlighter1_270_366_Open_Image.style.display='inline'; Codehighlighter1_270_366_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;UnicodeReader(InputStream&nbsp;in,&nbsp;String&nbsp;defaultEnc)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_270_366_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_270_366_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internalIn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PushbackInputStream(in,&nbsp;BOM_SIZE);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.defaultEnc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;defaultEnc;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_406_434_Open_Image" onclick="this.style.display='none'; Codehighlighter1_406_434_Open_Text.style.display='none'; Codehighlighter1_406_434_Closed_Image.style.display='inline'; Codehighlighter1_406_434_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_406_434_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_406_434_Closed_Text.style.display='none'; Codehighlighter1_406_434_Open_Image.style.display='inline'; Codehighlighter1_406_434_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getDefaultEncoding()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_406_434_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_406_434_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;defaultEnc;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;<br /><img id="Codehighlighter1_470_556_Open_Image" onclick="this.style.display='none'; Codehighlighter1_470_556_Open_Text.style.display='none'; Codehighlighter1_470_556_Closed_Image.style.display='inline'; Codehighlighter1_470_556_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_470_556_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_470_556_Closed_Text.style.display='none'; Codehighlighter1_470_556_Open_Image.style.display='inline'; Codehighlighter1_470_556_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getEncoding()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_470_556_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_470_556_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(internalIn2&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;internalIn2.getEncoding();<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;<br /><img id="Codehighlighter1_605_2031_Open_Image" onclick="this.style.display='none'; Codehighlighter1_605_2031_Open_Text.style.display='none'; Codehighlighter1_605_2031_Closed_Image.style.display='inline'; Codehighlighter1_605_2031_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_605_2031_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_605_2031_Closed_Text.style.display='none'; Codehighlighter1_605_2031_Open_Image.style.display='inline'; Codehighlighter1_605_2031_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_605_2031_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_605_2031_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(internalIn2&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;encoding;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;bom[]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[BOM_SIZE];<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n,&nbsp;unread;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;internalIn.read(bom,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;bom.length);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(bom[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0x00</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0x00</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000"><br /><img id="Codehighlighter1_903_965_Open_Image" onclick="this.style.display='none'; Codehighlighter1_903_965_Open_Text.style.display='none'; Codehighlighter1_903_965_Closed_Image.style.display='inline'; Codehighlighter1_903_965_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_903_965_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_903_965_Closed_Text.style.display='none'; Codehighlighter1_903_965_Open_Image.style.display='inline'; Codehighlighter1_903_965_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(bom[</span><span style="color: #000000">2</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFE</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">3</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFF</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_903_965_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_903_965_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-32BE</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(bom[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFF</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFE</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000"><br /><img id="Codehighlighter1_1097_1159_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1097_1159_Open_Text.style.display='none'; Codehighlighter1_1097_1159_Closed_Image.style.display='inline'; Codehighlighter1_1097_1159_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1097_1159_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1097_1159_Closed_Text.style.display='none'; Codehighlighter1_1097_1159_Open_Image.style.display='inline'; Codehighlighter1_1097_1159_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(bom[</span><span style="color: #000000">2</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0x00</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">3</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0x00</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1097_1159_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1097_1159_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-32LE</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;&nbsp;(bom[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xEF</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xBB</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000"><br /><img id="Codehighlighter1_1260_1319_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1260_1319_Open_Text.style.display='none'; Codehighlighter1_1260_1319_Closed_Image.style.display='inline'; Codehighlighter1_1260_1319_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1260_1319_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1260_1319_Closed_Text.style.display='none'; Codehighlighter1_1260_1319_Open_Image.style.display='inline'; Codehighlighter1_1260_1319_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(bom[</span><span style="color: #000000">2</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xBF</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1260_1319_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1260_1319_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">;<br /><img id="Codehighlighter1_1382_1444_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1382_1444_Open_Text.style.display='none'; Codehighlighter1_1382_1444_Closed_Image.style.display='inline'; Codehighlighter1_1382_1444_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1382_1444_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1382_1444_Closed_Text.style.display='none'; Codehighlighter1_1382_1444_Open_Image.style.display='inline'; Codehighlighter1_1382_1444_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(bom[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFE</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFF</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1382_1444_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1382_1444_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-16BE</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;<br /><img id="Codehighlighter1_1507_1569_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1507_1569_Open_Text.style.display='none'; Codehighlighter1_1507_1569_Closed_Image.style.display='inline'; Codehighlighter1_1507_1569_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1507_1569_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1507_1569_Closed_Text.style.display='none'; Codehighlighter1_1507_1569_Open_Image.style.display='inline'; Codehighlighter1_1507_1569_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(bom[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFF</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(bom[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">)</span><span style="color: #000000">0xFE</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1507_1569_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1507_1569_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-16LE</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;<br /><img id="Codehighlighter1_1576_1690_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1576_1690_Open_Text.style.display='none'; Codehighlighter1_1576_1690_Closed_Image.style.display='inline'; Codehighlighter1_1576_1690_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1576_1690_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1576_1690_Closed_Text.style.display='none'; Codehighlighter1_1576_1690_Open_Image.style.display='inline'; Codehighlighter1_1576_1690_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1576_1690_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1576_1690_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Unicode&nbsp;BOM&nbsp;mark&nbsp;not&nbsp;found,&nbsp;unread&nbsp;all&nbsp;bytes</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;defaultEnc;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unread&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">System.out.println("read="&nbsp;+&nbsp;n&nbsp;+&nbsp;",&nbsp;unread="&nbsp;+&nbsp;unread);</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(unread&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;internalIn.unread(bom,&nbsp;(n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;unread),&nbsp;unread);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Use&nbsp;given&nbsp;encoding</span><span style="color: #008000"><br /><img id="Codehighlighter1_1882_1946_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1882_1946_Open_Text.style.display='none'; Codehighlighter1_1882_1946_Closed_Image.style.display='inline'; Codehighlighter1_1882_1946_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1882_1946_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1882_1946_Closed_Text.style.display='none'; Codehighlighter1_1882_1946_Open_Image.style.display='inline'; Codehighlighter1_1882_1946_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(encoding&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1882_1946_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1882_1946_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internalIn2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamReader(internalIn);<br /><img id="Codehighlighter1_1953_2027_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1953_2027_Open_Text.style.display='none'; Codehighlighter1_1953_2027_Closed_Image.style.display='inline'; Codehighlighter1_1953_2027_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1953_2027_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1953_2027_Closed_Text.style.display='none'; Codehighlighter1_1953_2027_Open_Image.style.display='inline'; Codehighlighter1_1953_2027_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1953_2027_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1953_2027_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internalIn2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamReader(internalIn,&nbsp;encoding);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_2075_2118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2075_2118_Open_Text.style.display='none'; Codehighlighter1_2075_2118_Closed_Image.style.display='inline'; Codehighlighter1_2075_2118_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_2075_2118_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2075_2118_Closed_Text.style.display='none'; Codehighlighter1_2075_2118_Open_Image.style.display='inline'; Codehighlighter1_2075_2118_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;close()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2075_2118_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2075_2118_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internalIn2.close();<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_2189_2252_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2189_2252_Open_Text.style.display='none'; Codehighlighter1_2189_2252_Closed_Image.style.display='inline'; Codehighlighter1_2189_2252_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_2189_2252_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2189_2252_Closed_Text.style.display='none'; Codehighlighter1_2189_2252_Open_Image.style.display='inline'; Codehighlighter1_2189_2252_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;read(</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;cbuf,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;off,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;len)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2189_2252_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2189_2252_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;internalIn2.read(cbuf,&nbsp;off,&nbsp;len);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div><img src ="http://www.blogjava.net/hwpok/aggbug/375365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-04-20 15:28 <a href="http://www.blogjava.net/hwpok/archive/2012/04/20/375365.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五个有用的过滤器 </title><link>http://www.blogjava.net/hwpok/archive/2012/02/13/369869.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Mon, 13 Feb 2012 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/02/13/369869.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/369869.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/02/13/369869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/369869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/369869.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、使浏览器不缓存页面的过滤器 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import&nbsp;javax.servlet.*;&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;javax.servlet.http.H...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2012/02/13/369869.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/369869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-02-13 14:55 <a href="http://www.blogjava.net/hwpok/archive/2012/02/13/369869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>el和ognl取pageContext、parameters、request、session、application 等处的属性值</title><link>http://www.blogjava.net/hwpok/archive/2012/02/02/369212.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Thu, 02 Feb 2012 01:28:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2012/02/02/369212.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/369212.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2012/02/02/369212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/369212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/369212.html</trackback:ping><description><![CDATA[<div id="blog_content" class="blog_content">
<p>对于取pageContext、parameters、request、session、application 等处的属性值(假如有 name 属性)时我们用的 EL 表达式分别是：<br /><br />${pageScope.name}、${param.name}、{$requestScope.name}、{$sessionScope.name}、{$applicationScope.name}<br /><br />那么对应的 OGNL 的解决方案分别是：<br /><br />&lt;s:peroperty value="#attr.name"/&gt;&nbsp;<br />&lt;s:property value="#parameters.name"/&gt;<br />&lt;s:property value="#request.name"/&gt;<br />&lt;s:property value="#session.name"/&gt;<br />&lt;s:property value="#application.name"/&gt;<br />&lt;s:textfield name="name"&nbsp; value="%{#parameters.name}"/&gt;<br /><br />说明，attr 如果可以访问到，则访问&nbsp;pageContext，否则将&nbsp;依次搜索 pageContext、request、session、application 相应值，所以可用来访问 pageContext 中的值，可替代 EL 的 ${pageScope.name}。</p>
<p>&nbsp;</p>
<p>--EOF--</p></div><img src ="http://www.blogjava.net/hwpok/aggbug/369212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2012-02-02 09:28 <a href="http://www.blogjava.net/hwpok/archive/2012/02/02/369212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 随机数</title><link>http://www.blogjava.net/hwpok/archive/2011/12/11/366107.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sun, 11 Dec 2011 13:59:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/12/11/366107.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/366107.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/12/11/366107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/366107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/366107.html</trackback:ping><description><![CDATA[所谓的随机生成数，其实并不是随机的。java是按照一定的规则生成的一序列数，但因为我们用户并不知道这个规则，所以看起来就像是随机生成的。&nbsp; 就好比：弄一个公式，令7是第一个数，然后把7代进去，可以生成第二个数，然后再把第二个数代进去，可以生成第三个数，最后就有一个序列了。。。&nbsp; 这看起来就像是一组随机数，但关键在于第一个数，也就是说，如果你第一个数，设置得一样了，那么下一次生成的随机序列还是前面那一个序列&nbsp;&nbsp;&nbsp; 而这第一个数就是种子&nbsp;&nbsp; 不知道我这样清楚了没？&nbsp; java里很多人喜欢把47当成种子用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每次用不同的种子，就可以生成不同的序列，前面那个函数就是设置种子的<img src ="http://www.blogjava.net/hwpok/aggbug/366107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-12-11 21:59 <a href="http://www.blogjava.net/hwpok/archive/2011/12/11/366107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>任何进制之间相互转换</title><link>http://www.blogjava.net/hwpok/archive/2011/12/08/365919.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Thu, 08 Dec 2011 11:18:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/12/08/365919.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/365919.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/12/08/365919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/365919.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/365919.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;atm;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.math.BigInteger;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_44_330_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_330_Open_Text.style.display='none'; Codehighlighter1_44_330_Closed_Image.style.display='inline'; Codehighlighter1_44_330_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_44_330_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_44_330_Closed_Text.style.display='none'; Codehighlighter1_44_330_Open_Image.style.display='inline'; Codehighlighter1_44_330_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_44_330_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_44_330_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;Title:[ScaleUtil]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;Description:&nbsp;[任何进制之间相互转换]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;Copyright&nbsp;2009&nbsp;Upengs&nbsp;Co.,&nbsp;Ltd.&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;All&nbsp;right&nbsp;reserved.&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;Created&nbsp;by&nbsp;[Huyvanpull]&nbsp;[2011-12-8]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;li&gt;Midified&nbsp;by&nbsp;[modifier]&nbsp;[modified&nbsp;time]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;&lt;/ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;</span><span style="color: #808080">@version</span><span style="color: #008000">&nbsp;1.0<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;ScaleUtil<br /><img id="Codehighlighter1_355_2346_Open_Image" onclick="this.style.display='none'; Codehighlighter1_355_2346_Open_Text.style.display='none'; Codehighlighter1_355_2346_Closed_Image.style.display='inline'; Codehighlighter1_355_2346_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_355_2346_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_355_2346_Closed_Text.style.display='none'; Codehighlighter1_355_2346_Open_Image.style.display='inline'; Codehighlighter1_355_2346_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_355_2346_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_355_2346_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_361_613_Open_Image" onclick="this.style.display='none'; Codehighlighter1_361_613_Open_Text.style.display='none'; Codehighlighter1_361_613_Closed_Image.style.display='inline'; Codehighlighter1_361_613_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_361_613_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_361_613_Closed_Text.style.display='none'; Codehighlighter1_361_613_Open_Image.style.display='inline'; Codehighlighter1_361_613_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_361_613_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_361_613_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Description:[任何进制转10进制]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Created&nbsp;by&nbsp;[Huyvanpull]&nbsp;[2011-12-8]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Midified&nbsp;by&nbsp;[modifier]&nbsp;[modified&nbsp;time]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;/ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;anyScaleStr<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;oScale<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;anyScale2tenScale(String&nbsp;anyScaleStr,&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;oScale)<br /><img id="Codehighlighter1_688_1119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_688_1119_Open_Text.style.display='none'; Codehighlighter1_688_1119_Closed_Image.style.display='inline'; Codehighlighter1_688_1119_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_688_1119_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_688_1119_Closed_Text.style.display='none'; Codehighlighter1_688_1119_Open_Image.style.display='inline'; Codehighlighter1_688_1119_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_688_1119_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_688_1119_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;tenScaleResult&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BigInteger(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;numStrs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;anyScaleStr.split(</span><span style="color: #000000">"</span><span style="color: #000000">[,]</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;numStrs.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /><img id="Codehighlighter1_857_1071_Open_Image" onclick="this.style.display='none'; Codehighlighter1_857_1071_Open_Text.style.display='none'; Codehighlighter1_857_1071_Closed_Image.style.display='inline'; Codehighlighter1_857_1071_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_857_1071_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_857_1071_Closed_Text.style.display='none'; Codehighlighter1_857_1071_Open_Image.style.display='inline'; Codehighlighter1_857_1071_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_857_1071_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_857_1071_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tenScaleResult&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tenScaleResult.add(BigInteger.valueOf(oScale).pow(<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numStrs.length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;i).multiply(<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger.valueOf(Long.parseLong(numStrs[i]))));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;tenScaleResult.toString();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_1130_1382_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1130_1382_Open_Text.style.display='none'; Codehighlighter1_1130_1382_Closed_Image.style.display='inline'; Codehighlighter1_1130_1382_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1130_1382_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1130_1382_Closed_Text.style.display='none'; Codehighlighter1_1130_1382_Open_Image.style.display='inline'; Codehighlighter1_1130_1382_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1130_1382_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_1130_1382_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Description:[10进制转任何进制]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Created&nbsp;by&nbsp;[Huyvanpull]&nbsp;[2011-12-8]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Midified&nbsp;by&nbsp;[modifier]&nbsp;[modified&nbsp;time]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;/ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;tenScaleStr<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;tScale<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;tenScale2anyScale(String&nbsp;tenScaleStr,&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;tScale)<br /><img id="Codehighlighter1_1457_2033_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1457_2033_Open_Text.style.display='none'; Codehighlighter1_1457_2033_Closed_Image.style.display='inline'; Codehighlighter1_1457_2033_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1457_2033_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1457_2033_Closed_Text.style.display='none'; Codehighlighter1_1457_2033_Open_Image.style.display='inline'; Codehighlighter1_1457_2033_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1457_2033_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1457_2033_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;c62Source&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BigInteger(tenScaleStr);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">true</span><span style="color: #000000">)<br /><img id="Codehighlighter1_1598_1993_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1598_1993_Open_Text.style.display='none'; Codehighlighter1_1598_1993_Closed_Image.style.display='inline'; Codehighlighter1_1598_1993_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1598_1993_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1598_1993_Closed_Text.style.display='none'; Codehighlighter1_1598_1993_Open_Image.style.display='inline'; Codehighlighter1_1598_1993_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1598_1993_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1598_1993_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.insert(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;c62Source.mod(BigInteger.valueOf(tScale))&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c62Source&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;c62Source.divide(BigInteger.valueOf(tScale));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(BigInteger.valueOf(tScale).compareTo(c62Source)&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)<br /><img id="Codehighlighter1_1831_1983_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1831_1983_Open_Text.style.display='none'; Codehighlighter1_1831_1983_Closed_Image.style.display='inline'; Codehighlighter1_1831_1983_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1831_1983_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1831_1983_Closed_Text.style.display='none'; Codehighlighter1_1831_1983_Open_Image.style.display='inline'; Codehighlighter1_1831_1983_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1831_1983_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1831_1983_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c62Source.longValue()&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.insert(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;c62Source.longValue()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;result.toString();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)<br /><img id="Codehighlighter1_2087_2344_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2087_2344_Open_Text.style.display='none'; Codehighlighter1_2087_2344_Closed_Image.style.display='inline'; Codehighlighter1_2087_2344_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_2087_2344_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2087_2344_Closed_Text.style.display='none'; Codehighlighter1_2087_2344_Open_Image.style.display='inline'; Codehighlighter1_2087_2344_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2087_2344_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2087_2344_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ScaleUtil&nbsp;su&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ScaleUtil();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;anyScaleStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;su.tenScale2anyScale(</span><span style="color: #000000">"</span><span style="color: #000000">63</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(anyScaleStr);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;tenScaleStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;su.anyScale2tenScale(anyScaleStr,&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(tenScaleStr);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/hwpok/aggbug/365919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-12-08 19:18 <a href="http://www.blogjava.net/hwpok/archive/2011/12/08/365919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用java迭代器Itetator遍历并删除HashMap中的元素问题</title><link>http://www.blogjava.net/hwpok/archive/2011/11/05/362723.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Fri, 04 Nov 2011 17:42:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/11/05/362723.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/362723.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/11/05/362723.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/362723.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/362723.html</trackback:ping><description><![CDATA[<span style="font-weight: normal">问题：<br />下面的代码试图利用</span><span style="font-weight: normal">HashMap的</span><span style="font-weight: normal">Iterator对象遍历该</span><span style="font-weight: normal">HashMap并</span><span style="font-weight: normal">删除满足条件的元素（比如超时的元素），但会抛出java.util.ConcurrentModificationEx<wbr>ception异常</span><br /><span style="font-weight: normal">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: rgb(0,102,102)">public static void main(String[] args)</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> HashMap&lt;String, String&gt; hs=new HashMap();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p1", "1");</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p2", "1");</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p3", "1");</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p4", "1");</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p5", "1");</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.put("p6", "1");&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> Iterator it=hs.keySet().iterator();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> while(it.hasNext())</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> String str=(String)it.next();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println(hs);&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //逻辑处理......... &nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> .............</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.remove(str); &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> }&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">}</span><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 原因<span style="color: rgb(255,0,0)">应该</span>是</span><span style="font-weight: normal">hs.remove(str)后，it内容没变，并且it里的指针列表又重新排序，所以只要确保删除任一元素后，it保持同步更新即可：<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 解决方案一：</span><span style="font-weight: normal">删除任一元素后，it保持同步更新<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: rgb(0,102,102)">............</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr></span></span> <span style="color: rgb(0,102,102); font-weight: normal">Iterator it=hs.keySet().iterator();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102); font-weight: normal">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> while(it.hasNext())<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> it=hs.keySet().iterator();&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> String str=(String)it.next();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println(hs);&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br /><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //逻辑处理......... &nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> .............<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.remove(str); &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> }&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span> <span style="font-weight: normal"><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> ...........</span><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 这样的时间复杂度明显太大（两层循环嵌套）<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 解决方案二：<br />由于删除元素时，hs的iterator对象也重新排序，所以只要用hs的一个副本hsBack<br />Uackp的iterator去遍历hs即可，这样在删除hs元素时iterator就不会重排了（因为删除的是hs的元素，而不是该iterator所属的</span><span style="font-weight: normal">hsBackUackp</span><span style="font-weight: normal">）<br /><span style="color: rgb(0,102,102)">...................</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hsBackUp=(HashMap&lt;String, String&gt;)hs.clone();</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> Iterator it=hsBackUp.keySet().iterator();</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println(hsBackUp);</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> while(it.hasNext())</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {</span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> String str=(String)it.next();&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println(hs);&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> hs.remove(str);&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> }&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></span><br /><span style="color: rgb(0,102,102)">.....................</span><br /></span><span style="font-weight: normal">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 这样虽然时间复杂度小了（只有一层循环），可是空间复杂度大了（多了一个hashmap的拷贝）；<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 查阅api文档和相关资料后，原来iterator对象有一remove方法:</span> <pre><span style="color: rgb(0,0,0); font-weight: normal">void remove()       <br />
    Removes from the underlying collection the last element returned by the<br />
 iterator (optional operation).  This method can be called only once per<br />
 call to </span><tt style="color: rgb(0,0,0); font-weight: normal">next</tt><span style="color: rgb(153,0,153); font-weight: normal"><span style="color: rgb(0,0,0)">.  The behavior of an iterator is unspecified if<br />
 the underlying collection is modified while the iteration is in<br />
 progress in any way other than by calling this method.</span><br />
<span style="color: rgb(0,0,0)">于是有下面的改进：</span><br />
    <span style="color: rgb(0,0,0)">解决方案三：</span><br />
<span style="color: rgb(0,102,102)">..............................</span><br />
<span style="color: rgb(0,102,102)">Iterator it=hs.keySet().iterator();      </span><br />
<span style="color: rgb(0,102,102)">        while(it.hasNext())</span><br />
<span style="color: rgb(0,102,102)">        {</span><br />
<span style="color: rgb(0,102,102)">            String str=(String)it.next();               </span><br />
<span style="color: rgb(0,102,102)">            System.out.println(hs);               </span><br />
<span style="color: rgb(0,102,102)">            it.remove();  </span><br />
<span style="color: rgb(0,102,102)">        }   </span><br />
<span style="color: rgb(0,102,102)">..............................</span></span></pre><img src ="http://www.blogjava.net/hwpok/aggbug/362723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-11-05 01:42 <a href="http://www.blogjava.net/hwpok/archive/2011/11/05/362723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mina  encode</title><link>http://www.blogjava.net/hwpok/archive/2011/09/05/358016.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Mon, 05 Sep 2011 11:17:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/09/05/358016.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/358016.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/09/05/358016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/358016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/358016.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;org.upeng.mail.net.util;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.core.buffer.IoBuffer;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.core.session.IoSession;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.filter.codec.CumulativeProtocolDecoder;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.filter.codec.ProtocolDecoderOutput;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MessageDecoder&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;CumulativeProtocolDecoder<br /><img id="Codehighlighter1_311_2014_Open_Image" onclick="this.style.display='none'; Codehighlighter1_311_2014_Open_Text.style.display='none'; Codehighlighter1_311_2014_Closed_Image.style.display='inline'; Codehighlighter1_311_2014_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_311_2014_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_311_2014_Closed_Text.style.display='none'; Codehighlighter1_311_2014_Open_Image.style.display='inline'; Codehighlighter1_311_2014_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_311_2014_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_311_2014_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;MAX_IMAGE_SIZE&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1024</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;DECODER_STATE_KEY&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getKey();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;doDecode(IoSession&nbsp;session,&nbsp;IoBuffer&nbsp;in,<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProtocolDecoderOutput&nbsp;out)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception<br /><img id="Codehighlighter1_570_1697_Open_Image" onclick="this.style.display='none'; Codehighlighter1_570_1697_Open_Text.style.display='none'; Codehighlighter1_570_1697_Closed_Image.style.display='inline'; Codehighlighter1_570_1697_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_570_1697_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_570_1697_Closed_Text.style.display='none'; Codehighlighter1_570_1697_Open_Image.style.display='inline'; Codehighlighter1_570_1697_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_570_1697_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_570_1697_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">decode-开始</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Context)&nbsp;session.getAttribute(DECODER_STATE_KEY);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(context&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /><img id="Codehighlighter1_735_844_Open_Image" onclick="this.style.display='none'; Codehighlighter1_735_844_Open_Text.style.display='none'; Codehighlighter1_735_844_Closed_Image.style.display='inline'; Codehighlighter1_735_844_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_735_844_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_735_844_Closed_Text.style.display='none'; Codehighlighter1_735_844_Open_Image.style.display='inline'; Codehighlighter1_735_844_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_735_844_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_735_844_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Context();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(DECODER_STATE_KEY,&nbsp;context);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(</span><span style="color: #0000ff">true</span><span style="color: #000000">)<br /><img id="Codehighlighter1_883_1624_Open_Image" onclick="this.style.display='none'; Codehighlighter1_883_1624_Open_Text.style.display='none'; Codehighlighter1_883_1624_Closed_Image.style.display='inline'; Codehighlighter1_883_1624_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_883_1624_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_883_1624_Closed_Text.style.display='none'; Codehighlighter1_883_1624_Open_Image.style.display='inline'; Codehighlighter1_883_1624_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_883_1624_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_883_1624_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(in.prefixedDataAvailable(</span><span style="color: #000000">4</span><span style="color: #000000">,&nbsp;MAX_IMAGE_SIZE))<br /><img id="Codehighlighter1_958_1539_Open_Image" onclick="this.style.display='none'; Codehighlighter1_958_1539_Open_Text.style.display='none'; Codehighlighter1_958_1539_Closed_Image.style.display='inline'; Codehighlighter1_958_1539_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_958_1539_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_958_1539_Closed_Text.style.display='none'; Codehighlighter1_958_1539_Open_Image.style.display='inline'; Codehighlighter1_958_1539_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_958_1539_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_958_1539_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;pieceLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in.getInt();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in.getInt();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.setTotalLength(totalLength);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bytes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[pieceLength&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.get(bytes);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.addPiece(bytes);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(context.isComplete())<br /><img id="Codehighlighter1_1295_1525_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1295_1525_Open_Text.style.display='none'; Codehighlighter1_1295_1525_Closed_Image.style.display='inline'; Codehighlighter1_1295_1525_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1295_1525_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1295_1525_Closed_Text.style.display='none'; Codehighlighter1_1295_1525_Open_Image.style.display='inline'; Codehighlighter1_1295_1525_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1295_1525_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1295_1525_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;message&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Message(context.getTotalData());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(message);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.removeAttribute(DECODER_STATE_KEY);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /><img id="Codehighlighter1_1570_1614_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1570_1614_Open_Text.style.display='none'; Codehighlighter1_1570_1614_Closed_Image.style.display='inline'; Codehighlighter1_1570_1614_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1570_1614_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1570_1614_Closed_Text.style.display='none'; Codehighlighter1_1570_1614_Open_Image.style.display='inline'; Codehighlighter1_1570_1614_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1570_1614_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1570_1614_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">System.out.println("decode-结束");<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">return&nbsp;false;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_1708_1907_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1708_1907_Open_Text.style.display='none'; Codehighlighter1_1708_1907_Closed_Image.style.display='inline'; Codehighlighter1_1708_1907_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1708_1907_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1708_1907_Closed_Text.style.display='none'; Codehighlighter1_1708_1907_Open_Image.style.display='inline'; Codehighlighter1_1708_1907_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1708_1907_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_1708_1907_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Description:[得到键值]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Created&nbsp;by&nbsp;[Huyvanpull]&nbsp;[2011-9-5]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;li&gt;Midified&nbsp;by&nbsp;[modifier]&nbsp;[modified&nbsp;time]&lt;/li&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;/ul&gt;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;getKey()<br /><img id="Codehighlighter1_1948_2012_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1948_2012_Open_Text.style.display='none'; Codehighlighter1_1948_2012_Closed_Image.style.display='inline'; Codehighlighter1_1948_2012_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1948_2012_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1948_2012_Closed_Text.style.display='none'; Codehighlighter1_1948_2012_Open_Image.style.display='inline'; Codehighlighter1_1948_2012_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1948_2012_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1948_2012_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;MessageDecoder.</span><span style="color: #0000ff">class</span><span style="color: #000000">.getName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.STATE</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>2.<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;org.upeng.mail.net.util;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.List;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.core.buffer.IoBuffer;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.core.session.IoSession;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.filter.codec.ProtocolEncoderAdapter;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.mina.filter.codec.ProtocolEncoderOutput;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MessageEncoder&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ProtocolEncoderAdapter<br /><img id="Codehighlighter1_329_1111_Open_Image" onclick="this.style.display='none'; Codehighlighter1_329_1111_Open_Text.style.display='none'; Codehighlighter1_329_1111_Closed_Image.style.display='inline'; Codehighlighter1_329_1111_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_329_1111_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_329_1111_Closed_Text.style.display='none'; Codehighlighter1_329_1111_Open_Image.style.display='inline'; Codehighlighter1_329_1111_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_329_1111_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_329_1111_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;encode(IoSession&nbsp;session,&nbsp;Object&nbsp;message,<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProtocolEncoderOutput&nbsp;out)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception<br /><img id="Codehighlighter1_449_1104_Open_Image" onclick="this.style.display='none'; Codehighlighter1_449_1104_Open_Text.style.display='none'; Codehighlighter1_449_1104_Closed_Image.style.display='inline'; Codehighlighter1_449_1104_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_449_1104_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_449_1104_Closed_Text.style.display='none'; Codehighlighter1_449_1104_Open_Image.style.display='inline'; Codehighlighter1_449_1104_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_449_1104_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_449_1104_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">encode-开始</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Message)&nbsp;message;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IoBuffer&nbsp;buffer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;IoBuffer.allocate(</span><span style="color: #000000">1024</span><span style="color: #000000">).setAutoExpand(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;定义上下文</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Context(msg.getDataBody());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;pieceLst&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;context.getPieceLst();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">pieceLst.size();&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /><img id="Codehighlighter1_806_986_Open_Image" onclick="this.style.display='none'; Codehighlighter1_806_986_Open_Text.style.display='none'; Codehighlighter1_806_986_Closed_Image.style.display='inline'; Codehighlighter1_806_986_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_806_986_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_806_986_Closed_Text.style.display='none'; Codehighlighter1_806_986_Open_Image.style.display='inline'; Codehighlighter1_806_986_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_806_986_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_806_986_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pieceLst.get(i);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.putInt(temp.length&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.putInt(msg.getDataBody().length);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.put(temp);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.flip();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(buffer);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">decode-结束</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><br /><br /><img src ="http://www.blogjava.net/hwpok/aggbug/358016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-09-05 19:17 <a href="http://www.blogjava.net/hwpok/archive/2011/09/05/358016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)NIO  ByteBuffer</title><link>http://www.blogjava.net/hwpok/archive/2011/09/04/357944.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sun, 04 Sep 2011 11:27:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/09/04/357944.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357944.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/09/04/357944.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357944.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">在&nbsp;NIO&nbsp;库中，所有数据都是用缓冲区处理的。在读取数据时，它是直接读到缓冲区中的。在写入数据时，它是写入到缓冲区中的。任何时候访问&nbsp;NIO&nbsp;中的数据，都是将它放到缓冲区中。缓冲区实质上是一个数组。通常它是一个字节数组，但是也可以使用其他种类的数组。但是一个缓冲区不仅仅是一个数组。缓冲区提供了对数据的结构化访问，而且还可以跟踪系统的读</span><span style="color: #000000">/</span><span style="color: #000000">写进程。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />buffer其实只是一个美化了的数组。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />状态变量<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />跟踪数据的状态情况使buffer可以自己管理数据资源&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />position:&nbsp;其实是指从buffer读取或写入buffer的下一个元素位置。比如，已经写入buffer&nbsp;3个元素那那么position就是指向第4个位置，即position设置为3（数组从0开始计）。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />limit：还有多少数据需要从buffer中取出，或还有多少空间可以放入。postition总是</span><span style="color: #000000">&lt;=</span><span style="color: #000000">limit。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />capacity:&nbsp;表示buffer本身底层数组的容量。limit绝不能</span><span style="color: #000000">&gt;</span><span style="color: #000000">capacity。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />filp()：作了两件事情：</span><span style="color: #000000">1</span><span style="color: #000000">.将limit指向现在position的位置&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">.将position设置为0&nbsp;（limit</span><span style="color: #000000">=</span><span style="color: #000000">position;position</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">）<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个过程可以使之前buffer写入数据时改变的状态变为可以&#8220;准备读取&#8221;。因为之前写到buffer中的数据就是position&nbsp;到&nbsp;limit</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;两个位置之间（limit指向最后一个数据的后一个位置）。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />clear():<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;也作了两件事：</span><span style="color: #000000">1</span><span style="color: #000000">.&nbsp;limit</span><span style="color: #000000">=</span><span style="color: #000000">capacity&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">.position</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这个过程可以使buffer读取数据时改变的状态改变为&#8220;清空并准备写入&#8221;。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />访问方法<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />以下都以bytebuffer为例<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />get():<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;前三个get方法是相对读取。就是相对于位置状态来读取数据，并且会改变position位置状态。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;get();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;get(</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;dst[]);</span><span style="color: #008000">//</span><span style="color: #008000">读取bytebuffer中数据写入&nbsp;dst[]</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;get(</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;dst[],</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;offset,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;该读取数据是绝对读取（一个byte），即会忽略limit和position值。并完全绕过了缓冲区的状态统计方法。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;就是说不会改变buffer内部的位置状态。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;get(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;index);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />put();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;与get类似&nbsp;前四个put方法是相对读取。即受position&nbsp;以及limit影响，并且会改变&nbsp;position。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;put(&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;b&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;put(&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;src[]&nbsp;);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从src[]写入bytebuffer</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;put(&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;src[],&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;offset,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;put(&nbsp;ByteBuffer&nbsp;src&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;最后一个是绝对写入&nbsp;不会影响position等位置状态。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;ByteBuffer&nbsp;put(&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;index,&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;b&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />除了byte的读写还有其他类型的读写方法。并且他们都存在相对以及绝对两类。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />操作的典型使用：<br /><img id="Codehighlighter1_1453_1712_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1453_1712_Open_Text.style.display='none'; Codehighlighter1_1453_1712_Closed_Image.style.display='inline'; Codehighlighter1_1453_1712_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1453_1712_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1453_1712_Closed_Text.style.display='none'; Codehighlighter1_1453_1712_Open_Image.style.display='inline'; Codehighlighter1_1453_1712_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">view&nbsp;plaincopy&nbsp;to&nbsp;clipboardprint</span><span style="color: #000000">?</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">true</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1453_1712_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1453_1712_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.clear();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;准备将数据写入buffer&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;r&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fcin.read(&nbsp;buffer&nbsp;);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;channel读取外部系统的数据并写入&nbsp;buffer&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img id="Codehighlighter1_1581_1606_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1581_1606_Open_Text.style.display='none'; Codehighlighter1_1581_1606_Closed_Image.style.display='inline'; Codehighlighter1_1581_1606_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1581_1606_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1581_1606_Closed_Text.style.display='none'; Codehighlighter1_1581_1606_Open_Image.style.display='inline'; Codehighlighter1_1581_1606_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(r</span><span style="color: #000000">==-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1581_1606_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1581_1606_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.flip();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">准备将数据读出buffer&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fcout.write(&nbsp;buffer&nbsp;);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;channel读取buffer的数据并写到相应的外部系统&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img id="Codehighlighter1_1729_1968_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1729_1968_Open_Text.style.display='none'; Codehighlighter1_1729_1968_Closed_Image.style.display='inline'; Codehighlighter1_1729_1968_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1729_1968_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1729_1968_Closed_Text.style.display='none'; Codehighlighter1_1729_1968_Open_Image.style.display='inline'; Codehighlighter1_1729_1968_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">true</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1729_1968_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1729_1968_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.clear();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;准备将数据写入buffer</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;r&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fcin.read(&nbsp;buffer&nbsp;);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;channel读取外部系统的数据并写入&nbsp;buffer</span><span style="color: #008000"><br /><img id="Codehighlighter1_1849_1870_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1849_1870_Open_Text.style.display='none'; Codehighlighter1_1849_1870_Closed_Image.style.display='inline'; Codehighlighter1_1849_1870_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1849_1870_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1849_1870_Closed_Text.style.display='none'; Codehighlighter1_1849_1870_Open_Image.style.display='inline'; Codehighlighter1_1849_1870_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(r</span><span style="color: #000000">==-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1849_1870_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1849_1870_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.flip();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">准备将数据读出buffer</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fcout.write(&nbsp;buffer&nbsp;);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;channel读取buffer的数据并写到相应的外部系统</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />高级应用<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />缓存区的分配和包装<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />ByteBuffer.allocate(</span><span style="color: #0000ff">int</span><span style="color: #000000">);方法可以分配（创建）一个byte类型的buffer。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />ByteBuffer.wrap(</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]);方法可以将一个已有的byte数组包装出一个新的bytebuffer对象。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />后一种方式需要小心处理原来的那个byte数组。因为它可以直接访问了。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />缓冲区的分片<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />分片就是建立&#8220;子缓冲区&#8221;。子缓冲区共享父缓冲区的一部分底层数组位置。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />在某种意义上，子缓冲区就像原来的缓冲区中的一个窗口。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这样当改变子缓冲区的内容时，父缓冲区的相应位置也会被改变。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />分片操作是根据当前position以及limit的值来确定的。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />buffer.position(&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />buffer.limit(&nbsp;</span><span style="color: #000000">7</span><span style="color: #000000">&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />ByteBuffer&nbsp;slice&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;buffer.slice();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />只读缓冲区<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />asReadOnlyBuffer()方法可以返回一个与原buffer对象一样的对象，只是新的buffer对象是只读的。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />直接缓冲区<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />sun的定义:给定一个直接字节缓冲区，Java&nbsp;虚拟机将尽最大努力直接对它执行本机&nbsp;I</span><span style="color: #000000">/</span><span style="color: #000000">O&nbsp;操作。也就是说，它会在每一次调用底层操作系统的本机&nbsp;I</span><span style="color: #000000">/</span><span style="color: #000000">O&nbsp;操作之前(或之后)，尝试避免将缓冲区的内容拷贝到一个中间缓冲区中(或者从一个中间缓冲区中拷贝数据)。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />创建directbuffer的方式是用ByteBuffer.allocateDirect(&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;);方法替代ByteBuffer.allocate(</span><span style="color: #0000ff">int</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />内存影射文件I</span><span style="color: #000000">/</span><span style="color: #000000">O<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />它读写要比其他IO快很多.<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />他使文件或文件的一部分由内存影射。但是只有操作该部分位置的数据才是以内存方式读写的，而不是整个文件读入内存。（并且他是一个os的底层机制。由os底层异步完成内存与物理磁盘上的数据同步）<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />影射文件可以通过FileChannel对象的map方法得到。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />比如以下就是将一个文件的前1024个字节影射到内存，并创建一个MappedByteBuffer对象返回出来。MappedByteBuffer是ByteBuffer的一个子类。<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />MappedByteBuffer&nbsp;mbb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fc.map(&nbsp;FileChannel.MapMode.READ_WRITE,&nbsp;start,&nbsp;size&nbsp;);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div> <img src ="http://www.blogjava.net/hwpok/aggbug/357944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-09-04 19:27 <a href="http://www.blogjava.net/hwpok/archive/2011/09/04/357944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java  访问修饰符</title><link>http://www.blogjava.net/hwpok/archive/2011/09/03/357926.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Sat, 03 Sep 2011 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/09/03/357926.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357926.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/09/03/357926.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357926.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 此题考察修饰符，函数定义等，故从网上搜罗了下相关资料，总结如下：&nbsp;类、方法、成员变量和局部变量的可用修饰符 修饰符类成员访求构造方法成员变量局部变量abstract（抽象的）&#8730;&#8730;－－－static （静态的）－&#87...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2011/09/03/357926.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/357926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-09-03 23:55 <a href="http://www.blogjava.net/hwpok/archive/2011/09/03/357926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ImageHelper</title><link>http://www.blogjava.net/hwpok/archive/2011/09/01/357732.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Thu, 01 Sep 2011 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/09/01/357732.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357732.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/09/01/357732.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357732.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357732.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.net.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;ImageHelper<br /><img id="Codehighlighter1_86_826_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_826_Open_Text.style.display='none'; Codehighlighter1_86_826_Closed_Image.style.display='inline'; Codehighlighter1_86_826_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_86_826_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_86_826_Closed_Text.style.display='none'; Codehighlighter1_86_826_Open_Image.style.display='inline'; Codehighlighter1_86_826_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_86_826_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_86_826_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;ImageHelper()<br /><img id="Codehighlighter1_123_124_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_124_Open_Text.style.display='none'; Codehighlighter1_123_124_Closed_Image.style.display='inline'; Codehighlighter1_123_124_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_123_124_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_123_124_Closed_Text.style.display='none'; Codehighlighter1_123_124_Open_Image.style.display='inline'; Codehighlighter1_123_124_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_123_124_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_123_124_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Image&nbsp;loadImage(String&nbsp;name)<br /><img id="Codehighlighter1_182_597_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_597_Open_Text.style.display='none'; Codehighlighter1_182_597_Closed_Image.style.display='inline'; Codehighlighter1_182_597_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_182_597_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_182_597_Closed_Text.style.display='none'; Codehighlighter1_182_597_Open_Image.style.display='inline'; Codehighlighter1_182_597_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_182_597_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_182_597_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br /><img id="Codehighlighter1_232_444_Open_Image" onclick="this.style.display='none'; Codehighlighter1_232_444_Open_Text.style.display='none'; Codehighlighter1_232_444_Closed_Image.style.display='inline'; Codehighlighter1_232_444_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_232_444_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_232_444_Closed_Text.style.display='none'; Codehighlighter1_232_444_Open_Image.style.display='inline'; Codehighlighter1_232_444_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_232_444_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_232_444_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ImageHelper.</span><span style="color: #0000ff">class</span><span style="color: #000000">.getResource(name);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(url&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /><img id="Codehighlighter1_334_434_Open_Image" onclick="this.style.display='none'; Codehighlighter1_334_434_Open_Text.style.display='none'; Codehighlighter1_334_434_Closed_Image.style.display='inline'; Codehighlighter1_334_434_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_334_434_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_334_434_Closed_Text.style.display='none'; Codehighlighter1_334_434_Open_Image.style.display='inline'; Codehighlighter1_334_434_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_334_434_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_334_434_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Toolkit.getDefaultToolkit().createImage(url);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Throwable&nbsp;ex)<br /><img id="Codehighlighter1_483_569_Open_Image" onclick="this.style.display='none'; Codehighlighter1_483_569_Open_Text.style.display='none'; Codehighlighter1_483_569_Closed_Image.style.display='inline'; Codehighlighter1_483_569_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_483_569_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_483_569_Closed_Text.style.display='none'; Codehighlighter1_483_569_Open_Image.style.display='inline'; Codehighlighter1_483_569_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_483_569_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_483_569_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">ERROR:&nbsp;loading&nbsp;image&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;failed</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;image;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;ImageIcon&nbsp;loadIcon(String&nbsp;name)<br /><img id="Codehighlighter1_658_824_Open_Image" onclick="this.style.display='none'; Codehighlighter1_658_824_Open_Text.style.display='none'; Codehighlighter1_658_824_Closed_Image.style.display='inline'; Codehighlighter1_658_824_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_658_824_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_658_824_Closed_Text.style.display='none'; Codehighlighter1_658_824_Open_Image.style.display='inline'; Codehighlighter1_658_824_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_658_824_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_658_824_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ImageHelper.loadImage(name);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(image&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /><img id="Codehighlighter1_746_797_Open_Image" onclick="this.style.display='none'; Codehighlighter1_746_797_Open_Text.style.display='none'; Codehighlighter1_746_797_Closed_Image.style.display='inline'; Codehighlighter1_746_797_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_746_797_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_746_797_Closed_Text.style.display='none'; Codehighlighter1_746_797_Open_Image.style.display='inline'; Codehighlighter1_746_797_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_746_797_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_746_797_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ImageIcon(image);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/hwpok/aggbug/357732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-09-01 14:32 <a href="http://www.blogjava.net/hwpok/archive/2011/09/01/357732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>socketPool</title><link>http://www.blogjava.net/hwpok/archive/2011/08/30/357594.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Tue, 30 Aug 2011 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/08/30/357594.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357594.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/08/30/357594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357594.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357594.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;example.helloword.client;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.concurrent.ExecutorService;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.concurrent.Executors;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.concurrent.Future;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SendMsgPool<br /><img id="Codehighlighter1_181_834_Open_Image" onclick="this.style.display='none'; Codehighlighter1_181_834_Open_Text.style.display='none'; Codehighlighter1_181_834_Closed_Image.style.display='inline'; Codehighlighter1_181_834_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_181_834_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_181_834_Closed_Text.style.display='none'; Codehighlighter1_181_834_Open_Image.style.display='inline'; Codehighlighter1_181_834_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_181_834_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_181_834_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;SendMsgPool&nbsp;sendMsgPool&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SendMsgPool();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;ExecutorService&nbsp;pool;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;SendMsgPool()<br /><img id="Codehighlighter1_321_375_Open_Image" onclick="this.style.display='none'; Codehighlighter1_321_375_Open_Text.style.display='none'; Codehighlighter1_321_375_Closed_Image.style.display='inline'; Codehighlighter1_321_375_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_321_375_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_321_375_Closed_Text.style.display='none'; Codehighlighter1_321_375_Open_Image.style.display='inline'; Codehighlighter1_321_375_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_321_375_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_321_375_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pool&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Executors.newFixedThreadPool(</span><span style="color: #000000">3</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;SendMsgPool&nbsp;getInstance()<br /><img id="Codehighlighter1_430_464_Open_Image" onclick="this.style.display='none'; Codehighlighter1_430_464_Open_Text.style.display='none'; Codehighlighter1_430_464_Closed_Image.style.display='inline'; Codehighlighter1_430_464_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_430_464_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_430_464_Closed_Text.style.display='none'; Codehighlighter1_430_464_Open_Image.style.display='inline'; Codehighlighter1_430_464_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_430_464_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_430_464_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sendMsgPool;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Future</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;sendMsg(String&nbsp;local,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;port,&nbsp;String&nbsp;msg)<br /><img id="Codehighlighter1_545_758_Open_Image" onclick="this.style.display='none'; Codehighlighter1_545_758_Open_Text.style.display='none'; Codehighlighter1_545_758_Closed_Image.style.display='inline'; Codehighlighter1_545_758_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_545_758_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_545_758_Closed_Text.style.display='none'; Codehighlighter1_545_758_Open_Image.style.display='inline'; Codehighlighter1_545_758_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_545_758_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_545_758_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClinetSocket&nbsp;clientScoket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ClientSocketPool.getInstance()<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getClientSocket(local,&nbsp;port);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientTread&nbsp;ct&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ClientTread(clientScoket,&nbsp;msg);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;pool.submit(ct);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;shutDown()<br /><img id="Codehighlighter1_796_832_Open_Image" onclick="this.style.display='none'; Codehighlighter1_796_832_Open_Text.style.display='none'; Codehighlighter1_796_832_Closed_Image.style.display='inline'; Codehighlighter1_796_832_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_796_832_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_796_832_Closed_Text.style.display='none'; Codehighlighter1_796_832_Open_Image.style.display='inline'; Codehighlighter1_796_832_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_796_832_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_796_832_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.pool.shutdown();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p>&nbsp;</p> <img src ="http://www.blogjava.net/hwpok/aggbug/357594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-08-30 18:01 <a href="http://www.blogjava.net/hwpok/archive/2011/08/30/357594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache mina框架小试</title><link>http://www.blogjava.net/hwpok/archive/2011/08/30/357563.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Tue, 30 Aug 2011 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/08/30/357563.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357563.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/08/30/357563.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357563.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357563.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.server Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package&nbsp;server;import&nbsp;java.net.InetSocketAddress;import&nbsp;org.apache.mina.core...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2011/08/30/357563.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/357563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-08-30 13:11 <a href="http://www.blogjava.net/hwpok/archive/2011/08/30/357563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss netty 框架小试</title><link>http://www.blogjava.net/hwpok/archive/2011/08/30/357562.html</link><dc:creator>HUIKK</dc:creator><author>HUIKK</author><pubDate>Tue, 30 Aug 2011 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/08/30/357562.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/357562.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/08/30/357562.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/357562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/357562.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.server Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package&nbsp;example.helloword.server;import&nbsp;java.net.InetSocketAddress;import&nbsp;ja...&nbsp;&nbsp;<a href='http://www.blogjava.net/hwpok/archive/2011/08/30/357562.html'>阅读全文</a><img src ="http://www.blogjava.net/hwpok/aggbug/357562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">HUIKK</a> 2011-08-30 13:07 <a href="http://www.blogjava.net/hwpok/archive/2011/08/30/357562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>