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

📄 iobuffertest.html

📁 MINA+API 关于MINA的API
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="486" href="#486">486</a>         IoBuffer buf = IoBuffer.allocate(16).sweep().setAutoExpand(<strong class="jxr_keyword">true</strong>);<a name="487" href="#487">487</a> <a name="488" href="#488">488</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 1, 2, (byte) 32, encoder);<a name="489" href="#489">489</a>         Assert.assertEquals(3, buf.position());<a name="490" href="#490">490</a>         Assert.assertEquals(2, buf.get(0));<a name="491" href="#491">491</a>         Assert.assertEquals('A', buf.get(1));<a name="492" href="#492">492</a>         Assert.assertEquals(' ', buf.get(2));<a name="493" href="#493">493</a> <a name="494" href="#494">494</a>         buf.sweep();<a name="495" href="#495">495</a>         buf.putPrefixedString(<span class="jxr_string">"A"</span>, 1, 4, (byte) 32, encoder);<a name="496" href="#496">496</a>         Assert.assertEquals(5, buf.position());<a name="497" href="#497">497</a>         Assert.assertEquals(4, buf.get(0));<a name="498" href="#498">498</a>         Assert.assertEquals('A', buf.get(1));<a name="499" href="#499">499</a>         Assert.assertEquals(' ', buf.get(2));<a name="500" href="#500">500</a>         Assert.assertEquals(' ', buf.get(3));<a name="501" href="#501">501</a>         Assert.assertEquals(' ', buf.get(4));<a name="502" href="#502">502</a>     }<a name="503" href="#503">503</a> <a name="504" href="#504">504</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWideUtf8Characters() <strong class="jxr_keyword">throws</strong> Exception {<a name="505" href="#505">505</a>         Runnable r = <strong class="jxr_keyword">new</strong> Runnable() {<a name="506" href="#506">506</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {<a name="507" href="#507">507</a>                 IoBuffer buffer = IoBuffer.allocate(1);<a name="508" href="#508">508</a>                 buffer.setAutoExpand(<strong class="jxr_keyword">true</strong>);<a name="509" href="#509">509</a> <a name="510" href="#510">510</a>                 Charset charset = Charset.forName(<span class="jxr_string">"UTF-8"</span>);<a name="511" href="#511">511</a> <a name="512" href="#512">512</a>                 CharsetEncoder encoder = charset.newEncoder();<a name="513" href="#513">513</a> <a name="514" href="#514">514</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 5; i++) {<a name="515" href="#515">515</a>                     <strong class="jxr_keyword">try</strong> {<a name="516" href="#516">516</a>                         buffer.putString(<span class="jxr_string">"\u89d2"</span>, encoder);<a name="517" href="#517">517</a>                     } <strong class="jxr_keyword">catch</strong> (CharacterCodingException e) {<a name="518" href="#518">518</a>                         fail(e.getMessage());<a name="519" href="#519">519</a>                     }<a name="520" href="#520">520</a>                 }<a name="521" href="#521">521</a>             }<a name="522" href="#522">522</a>         };<a name="523" href="#523">523</a> <a name="524" href="#524">524</a>         Thread t = <strong class="jxr_keyword">new</strong> Thread(r);<a name="525" href="#525">525</a>         t.setDaemon(<strong class="jxr_keyword">true</strong>);<a name="526" href="#526">526</a>         t.start();<a name="527" href="#527">527</a> <a name="528" href="#528">528</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 50; i++) {<a name="529" href="#529">529</a>             Thread.sleep(100);<a name="530" href="#530">530</a>             <strong class="jxr_keyword">if</strong> (!t.isAlive()) {<a name="531" href="#531">531</a>                 <strong class="jxr_keyword">break</strong>;<a name="532" href="#532">532</a>             }<a name="533" href="#533">533</a>         }<a name="534" href="#534">534</a> <a name="535" href="#535">535</a>         <strong class="jxr_keyword">if</strong> (t.isAlive()) {<a name="536" href="#536">536</a>             t.interrupt();<a name="537" href="#537">537</a> <a name="538" href="#538">538</a>             fail(<span class="jxr_string">"Went into endless loop trying to encode character"</span>);<a name="539" href="#539">539</a>         }<a name="540" href="#540">540</a>     }<a name="541" href="#541">541</a> <a name="542" href="#542">542</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testObjectSerialization() <strong class="jxr_keyword">throws</strong> Exception {<a name="543" href="#543">543</a>         IoBuffer buf = IoBuffer.allocate(16);<a name="544" href="#544">544</a>         buf.setAutoExpand(<strong class="jxr_keyword">true</strong>);<a name="545" href="#545">545</a>         List&lt;Object&gt; o = <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;();<a name="546" href="#546">546</a>         o.add(<strong class="jxr_keyword">new</strong> Date());<a name="547" href="#547">547</a>         o.add(<strong class="jxr_keyword">long</strong>.<strong class="jxr_keyword">class</strong>);<a name="548" href="#548">548</a> <a name="549" href="#549">549</a>         <em class="jxr_comment">// Test writing an object.</em><a name="550" href="#550">550</a>         buf.putObject(o);<a name="551" href="#551">551</a> <a name="552" href="#552">552</a>         <em class="jxr_comment">// Test reading an object.</em><a name="553" href="#553">553</a>         buf.clear();<a name="554" href="#554">554</a>         Object o2 = buf.getObject();<a name="555" href="#555">555</a>         Assert.assertEquals(o, o2);<a name="556" href="#556">556</a> <a name="557" href="#557">557</a>         <em class="jxr_comment">// This assertion is just to make sure that deserialization occurred.</em><a name="558" href="#558">558</a>         Assert.assertNotSame(o, o2);<a name="559" href="#559">559</a>     }<a name="560" href="#560">560</a> <a name="561" href="#561">561</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSweepWithZeros() <strong class="jxr_keyword">throws</strong> Exception {<a name="562" href="#562">562</a>         IoBuffer buf = IoBuffer.allocate(4);<a name="563" href="#563">563</a>         buf.putInt(0xdeadbeef);<a name="564" href="#564">564</a>         buf.clear();<a name="565" href="#565">565</a>         Assert.assertEquals(0xdeadbeef, buf.getInt());<a name="566" href="#566">566</a>         Assert.assertEquals(4, buf.position());<a name="567" href="#567">567</a>         Assert.assertEquals(4, buf.limit());<a name="568" href="#568">568</a> <a name="569" href="#569">569</a>         buf.sweep();<a name="570" href="#570">570</a>         Assert.assertEquals(0, buf.position());<a name="571" href="#571">571</a>         Assert.assertEquals(4, buf.limit());<a name="572" href="#572">572</a>         Assert.assertEquals(0x0, buf.getInt());<a name="573" href="#573">573</a>     }<a name="574" href="#574">574</a> <a name="575" href="#575">575</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSweepNonZeros() <strong class="jxr_keyword">throws</strong> Exception {<a name="576" href="#576">576</a>         IoBuffer buf = IoBuffer.allocate(4);<a name="577" href="#577">577</a>         buf.putInt(0xdeadbeef);<a name="578" href="#578">578</a>         buf.clear();<a name="579" href="#579">579</a>         Assert.assertEquals(0xdeadbeef, buf.getInt());<a name="580" href="#580">580</a>         Assert.assertEquals(4, buf.position());<a name="581" href="#581">581</a>         Assert.assertEquals(4, buf.limit());<a name="582" href="#582">582</a> <a name="583" href="#583">583</a>         buf.sweep((byte) 0x45);<a name="584" href="#584">584</a>         Assert.assertEquals(0, buf.position());<a name="585" href="#585">585</a>         Assert.assertEquals(4, buf.limit());<a name="586" href="#586">586</a>         Assert.assertEquals(0x45454545, buf.getInt());<a name="587" href="#587">587</a>     }<a name="588" href="#588">588</a> <a name="589" href="#589">589</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWrapNioBuffer() <strong class="jxr_keyword">throws</strong> Exception {<a name="590" href="#590">590</a>         ByteBuffer nioBuf = ByteBuffer.allocate(10);<a name="591" href="#591">591</a>         nioBuf.position(3);<a name="592" href="#592">592</a>         nioBuf.limit(7);<a name="593" href="#593">593</a> <a name="594" href="#594">594</a>         IoBuffer buf = IoBuffer.wrap(nioBuf);<a name="595" href="#595">595</a>         Assert.assertEquals(3, buf.position());<a name="596" href="#596">596</a>         Assert.assertEquals(7, buf.limit());<a name="597" href="#597">597</a>         Assert.assertEquals(10, buf.capacity());<a name="598" href="#598">598</a>     }<a name="599" href="#599">599</a> <a name="600" href="#600">600</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWrapSubArray() <strong class="jxr_keyword">throws</strong> Exception {<a name="601" href="#601">601</a>         byte[] array = <strong class="jxr_keyword">new</strong> byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };<a name="602" href="#602">602</a> <a name="603" href="#603">603</a>         IoBuffer buf = IoBuffer.wrap(array, 3, 4);<a name="604" href="#604">604</a>         Assert.assertEquals(3, buf.position());<a name="605" href="#605">605</a>         Assert.assertEquals(7, buf.limit());<a name="606" href="#606">606</a>         Assert.assertEquals(10, buf.capacity());<a name="607" href="#607">607</a> <a name="608" href="#608">608</a>         buf.clear();<a name="609" href="#609">609</a>         Assert.assertEquals(0, buf.position());<a name="610" href="#610">610</a>         Assert.assertEquals(10, buf.limit());<a name="611" href="#611">611</a>         Assert.assertEquals(10, buf.capacity());<a name="612" href="#612">612</a>     }<a name="613" href="#613">613</a> <a name="614" href="#614">614</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDuplicate() <strong class="jxr_keyword">throws</strong> Exception {<a name="615" href="#615">615</a>         IoBuffer original;<a name="616" href="#616">616</a>         IoBuffer duplicate;<a name="617" href="#617">617</a> <a name="618" href="#618">618</a>         <em class="jxr_comment">// Test if the buffer is duplicated correctly.</em><a name="619" href="#619">619</a>         original = IoBuffer.allocate(16).sweep();<a name="620" href="#620">620</a>         original.position(4);<a name="621" href="#621">621</a>         original.limit(10);<a name="622" href="#622">622</a>         duplicate = original.duplicate();<a name="623" href="#623">623</a>         original.put(4, (byte) 127);<a name="624" href="#624">624</a>         Assert.assertEquals(4, duplicate.position());<a name="625" href="#625">625</a>         Assert.assertEquals(10, duplicate.limit());<a name="626" href="#626">626</a>         Assert.assertEquals(16, duplicate.capacity());<a name="627" href="#627">627</a>         Assert.assertNotSame(original.buf(), duplicate.buf());<a name="628" href="#628">628</a>         Assert.assertSame(original.buf().array(), duplicate.buf().array());<a name="629" href="#629">629</a>         Assert.assertEquals(127, duplicate.get(4));<a name="630" href="#630">630</a> <a name="631" href="#631">631</a>         <em class="jxr_comment">// Test a duplicate of a duplicate.</em><a name="632" href="#632">632</a>         original = IoBuffer.allocate(16);<a name="633" href="#633">633</a>         duplicate = original.duplicate().duplicate();<a name="634" href="#634">634</a>         Assert.assertNotSame(original.buf(), duplicate.buf());<a name="635" href="#635">635</a>         Assert.assertSame(original.buf().array(), duplicate.buf().array());<a name="636" href="#636">636</a> <a name="637" href="#637">637</a>         <em class="jxr_comment">// Try to expand.</em><a name="638" href="#638">638</a>         original = IoBuffer.allocate(16);<a name="639" href="#639">639</a>         original.setAutoExpand(<strong class="jxr_keyword">true</strong>);<a name="640" href="#640">640</a>         duplicate = original.duplicate();<a name="641" href="#641">641</a>         Assert.assertFalse(original.isAutoExpand());<a name="642" href="#642">642</a> <a name="643" href="#643">643</a>         <strong class="jxr_keyword">try</strong> {<a name="644" href="#644">644</a>             original.setAutoExpand(<strong class="jxr_keyword">true</strong>);<a name="645" href="#645">645</a>             Assert.fail();<a name="646" href="#646">646</a>         } <strong class="jxr_keyword">catch</strong> (IllegalStateException e) {<a name="647" href="#647">647</a>             <em class="jxr_comment">// OK</em><a name="648" href="#648">648</a>         }<a name="649" href="#649">649</a> <a name="650" href="#650">650</a>         <strong class="jxr_keyword">try</strong> {

⌨️ 快捷键说明

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