﻿<?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-myfavorite-随笔分类-java相关</title><link>http://www.blogjava.net/myfavorite/category/46658.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 17 Jun 2012 16:29:27 GMT</lastBuildDate><pubDate>Sun, 17 Jun 2012 16:29:27 GMT</pubDate><ttl>60</ttl><item><title>use CheckBoxMultipleChoice in wicket</title><link>http://www.blogjava.net/myfavorite/archive/2012/06/18/380978.html</link><dc:creator>myfavorite</dc:creator><author>myfavorite</author><pubDate>Sun, 17 Jun 2012 16:07:00 GMT</pubDate><guid>http://www.blogjava.net/myfavorite/archive/2012/06/18/380978.html</guid><wfw:comment>http://www.blogjava.net/myfavorite/comments/380978.html</wfw:comment><comments>http://www.blogjava.net/myfavorite/archive/2012/06/18/380978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myfavorite/comments/commentRss/380978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myfavorite/services/trackbacks/380978.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;CheckBoxMultipleChoice&lt;String&gt;&nbsp;resultlistChoice&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;CheckBoxMultipleChoice&lt;String&gt;("resultlist",&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;PropertyModel&lt;List&lt;String&gt;&gt;(<span style="color: #0000FF; ">this</span>,&nbsp;"valueList"),&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;PropertyModel&lt;List&lt;String&gt;&gt;(<span style="color: #0000FF; ">this</span>,&nbsp;"list"));<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultlistChoice.add(<span style="color: #0000FF; ">new</span>&nbsp;AjaxFormComponentUpdatingBehavior("onclick")&nbsp;{<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">protected</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;onUpdate(AjaxRequestTarget&nbsp;target)&nbsp;{<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultlistChoice.add(<span style="color: #0000FF; ">new</span>&nbsp;AjaxFormChoiceComponentUpdatingBehavior()&nbsp;{<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">protected</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;onUpdate(AjaxRequestTarget&nbsp;target)&nbsp;{<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectedList.clear();<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(String&nbsp;item&nbsp;:&nbsp;resultlistChoice.getModelObject())&nbsp;{<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectedList.add(item);<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(item);<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.add(selectedChoice);<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});</div><img src ="http://www.blogjava.net/myfavorite/aggbug/380978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myfavorite/" target="_blank">myfavorite</a> 2012-06-18 00:07 <a href="http://www.blogjava.net/myfavorite/archive/2012/06/18/380978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java连接MSSQL</title><link>http://www.blogjava.net/myfavorite/archive/2010/10/26/336209.html</link><dc:creator>myfavorite</dc:creator><author>myfavorite</author><pubDate>Tue, 26 Oct 2010 11:28:00 GMT</pubDate><guid>http://www.blogjava.net/myfavorite/archive/2010/10/26/336209.html</guid><wfw:comment>http://www.blogjava.net/myfavorite/comments/336209.html</wfw:comment><comments>http://www.blogjava.net/myfavorite/archive/2010/10/26/336209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myfavorite/comments/commentRss/336209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myfavorite/services/trackbacks/336209.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;驱动：&nbsp;msbase.jar&nbsp;、&nbsp;mssqlserver.jar&nbsp;、&nbsp;msutil.jar<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;driver&nbsp;=&nbsp;"com.microsoft.jdbc.sqlserver.SQLServerDriver";<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;url&nbsp;=&nbsp;"jdbc:microsoft:sqlserver:</span><span style="color: #008000">//</span><span style="color: #008000">192.168.0.82:1433;databasename=JFGLD";<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;驱动：jtds-1.2.jar<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;DB.DRIVER=net.sourceforge.jtds.jdbc.Driver<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;DB.URL=jdbc:jtds:sqlserver:</span><span style="color: #008000">//</span><span style="color: #008000">localhost:1433/数据库名;s=8.0;lastupdatecount=true</span></div>
<img src ="http://www.blogjava.net/myfavorite/aggbug/336209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myfavorite/" target="_blank">myfavorite</a> 2010-10-26 19:28 <a href="http://www.blogjava.net/myfavorite/archive/2010/10/26/336209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java InputStream读取数据问题</title><link>http://www.blogjava.net/myfavorite/archive/2010/10/19/335606.html</link><dc:creator>myfavorite</dc:creator><author>myfavorite</author><pubDate>Tue, 19 Oct 2010 10:41:00 GMT</pubDate><guid>http://www.blogjava.net/myfavorite/archive/2010/10/19/335606.html</guid><wfw:comment>http://www.blogjava.net/myfavorite/comments/335606.html</wfw:comment><comments>http://www.blogjava.net/myfavorite/archive/2010/10/19/335606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myfavorite/comments/commentRss/335606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myfavorite/services/trackbacks/335606.html</trackback:ping><description><![CDATA[<p>1. 关于InputStream.read()<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在从数据流里读取数据时，为图简单，经常用InputStream.read()方法。这个方法是从流里每次只读取读取一个字节，效率会非常低。&nbsp;&nbsp;&nbsp;&nbsp; 更好的方法是用InputStream.read(byte[] b)或者InputStream.read(byte[] b,int off,int len)方法，一次读取多个字节。</p>
<p><br />
2. 关于InputStream类的available()方法<br />
&nbsp;&nbsp;&nbsp; 要一次读取多个字节时，经常用到InputStream.available()方法，这个方法可以在读写操作前先得知数据流里有多少个字节可以读取。需要注意的是，如果这个方法用在从本<br />
地文件读取数据时，一般不会遇到问题，但如果是用于网络操作，就经常会遇到一些麻烦。比如，Socket通讯时，对方明明发来了1000个字节，但是自己的程序调用available()方法却只得到900，或者100，甚至是0，感觉有点莫名其妙，怎么也找不到原因。其实，这是因为网络通讯往往是间断性的，一串字节往往分几批进行发送。本地程序调用available()方法有时得到0，这可能是对方还没有响应，也可能是对方已经响应了，但是数据还没有送达本地。对方发送了1000个字节给你，也许分成3批到达，这你就要调用3次available()方法才能将数据总数全部得到。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果这样写代码：<br />
&nbsp;&nbsp;int count = in.available();<br />
&nbsp;&nbsp;byte[] b = new byte[count];<br />
&nbsp;&nbsp;in.read(b);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在进行网络操作时往往出错，因为你调用available()方法时，对发发送的数据可能还没有到达，你得到的count是0。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需要改成这样：<br />
&nbsp;&nbsp;int count = 0;<br />
&nbsp;&nbsp;while (count == 0) {<br />
&nbsp;&nbsp;&nbsp;count = in.available();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;byte[] b = new byte[count];<br />
&nbsp;&nbsp;in.read(b);<br />
3. 关于InputStream.read(byte[] b)和InputStream.read(byte[] b,int off,int len)这两个方法都是用来从流里读取多个字节的，有经验的程序员就会发现，这两个方法经常 读取不到自己想要读取的个数的字节。比如第一个方法，程序员往往希望程序能读取到b.length个字节，而实际情况是，系统往往读取不了这么多。仔细阅读Java的API说明就发现了，这个方法 并不保证能读取这么多个字节，它只能保证最多读取这么多个字节(最少1个)。因此，如果要让程序读取count个字节，最好用以下代码：<br />
&nbsp;&nbsp;byte[] b = new byte[count];<br />
&nbsp;&nbsp;int readCount = 0; // 已经成功读取的字节的个数<br />
&nbsp;&nbsp;while (readCount &lt; count) {<br />
&nbsp;&nbsp;&nbsp;readCount += in.read(bytes, readCount, count - readCount);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用这段代码可以保证读取count个字节，除非中途遇到IO异常或者到了数据流的结尾(EOFException)<br />
</p>
<img src ="http://www.blogjava.net/myfavorite/aggbug/335606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myfavorite/" target="_blank">myfavorite</a> 2010-10-19 18:41 <a href="http://www.blogjava.net/myfavorite/archive/2010/10/19/335606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>