乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java nio入門教程詳解(十一)

       360lec 2016-09-30

      2.4.5 存取無符號數(shù)據(jù)

      Java 編程語言對無符號數(shù)值并沒有提供直接的支持(除了char類型)。但是在許多情況下您需要將無符號的信息轉(zhuǎn)化成數(shù)據(jù)流或者文件,或者包裝數(shù)據(jù)來創(chuàng)建文件頭或者其它帶有無符號數(shù)據(jù)區(qū)域結(jié)構(gòu)化的信息。ByteBuffer 類的 API 對此并沒有提供直接的支持,但是要實現(xiàn)并不困難。您只需要小心精度的問題。當(dāng)您必須處理緩沖區(qū)中的無符號數(shù)據(jù)時,例 2-3中的工具類可能會非常有幫助。 例 2-3. 獲取/存放無符號值的工具程序

      1. package com.ronsoft.books.nio.buffers;
      2. import java.nio.ByteBuffer;
      3. /**
      4. * 向 ByteBuffer 對象中獲取和存放無符號值的工具類。
      5. * 這里所有的函數(shù)都是靜態(tài)的,并且?guī)в幸粋€ ByteBuffer 參數(shù)。
      6. * 由于 java 不提供無符號原始類型,每個從緩沖區(qū)中讀出的無符號值被升到比它大的
      7. * 下一個基本數(shù)據(jù)類型中。
      8. * getUnsignedByte()返回一個 short 類型, getUnsignedShort()
      9. * 返回一個 int 類型,而 getUnsignedInt()返回一個 long 型。 There is no
      10. * 由于沒有基本類型來存儲返回的數(shù)據(jù),因此沒有 getUnsignedLong()。
      11. * 如果需要,返回 BigInteger 的函數(shù)可以執(zhí)行。
      12. * 同樣,存放函數(shù)要取一個大于它們所分配的類型的值。
      13. * putUnsignedByte 取一個 short 型參數(shù),等等。
      14. *
      15. * @author Ron Hitchens (ron@ronsoft.com)
      16. */
      17. public class Unsigned{
      18.     public static short getUnsignedByte (ByteBuffer bb){
      19.         return ((short)(bb.get( ) & 0xff));
      20.     }
      21.     public static void putUnsignedByte (ByteBuffer bb, int value){
      22.         bb.put ((byte)(value & 0xff));
      23.     }
      24.     public static short getUnsignedByte (ByteBuffer bb, int position){
      25.         return ((short)(bb.get (position) & (short)0xff));
      26.     }
      27.     public static void putUnsignedByte (ByteBuffer bb, int position, int value){
      28.         bb.put (position, (byte)(value & 0xff));
      29.     }
      30.     public static int getUnsignedShort (ByteBuffer bb){
      31.         return (bb.getShort( ) & 0xffff);
      32.     }
      33.     public static void putUnsignedShort (ByteBuffer bb, int value){
      34.         bb.putShort ((short)(value & 0xffff));
      35.     }
      36.     public static int getUnsignedShort (ByteBuffer bb, int position){
      37.         return (bb.getShort (position) & 0xffff);
      38.     }
      39.     public static void putUnsignedShort(ByteBuffer bb, int position, int value){
      40.         bb.putShort (position, (short)(value & 0xffff));
      41.     }
      42.     public static long getUnsignedInt (ByteBuffer bb){
      43.         return ((long)bb.getInt( ) & 0xffffffffL);
      44.     }
      45.     public static void putUnsignedInt (ByteBuffer bb, long value){
      46.         bb.putInt ((int)(value & 0xffffffffL));
      47.     }
      48.     public static long getUnsignedInt (ByteBuffer bb, int position){
      49.         return ((long)bb.getInt (position) & 0xffffffffL);
      50.     }
      51.     public static void putUnsignedInt (ByteBuffer bb, int position, long value){
      52.         bb.putInt (position, (int)(value & 0xffffffffL));
      53.     }
      54. }

      2.4.6 內(nèi)存映射緩沖區(qū)

      映射緩沖區(qū)是帶有存儲在文件,通過內(nèi)存映射來存取數(shù)據(jù)元素的字節(jié)緩沖區(qū)。映射緩沖區(qū)通常是直接存取內(nèi)存的,只能通過FileChannel類創(chuàng)建。映射緩沖區(qū)的用法和直接緩沖區(qū)類似,但是 MappedByteBuffer 對象可以處理獨立于文件存取形式的的許多特定字符。出于這個原因,我將討論映射緩沖區(qū)的內(nèi)容留到 3.4 節(jié),在那里我們也會討論文件鎖。

      Java nio入門教程詳解(十二)

      0 0
      我們認(rèn)為:用戶的主要目的,是為了獲取有用的信息,而不是來點擊廣告的。因此本站將竭力做好內(nèi)容,并將廣告和內(nèi)容進(jìn)行分離,確保所有廣告不會影響到用戶的正常閱讀體驗。用戶僅憑個人意愿和興趣愛好點擊廣告。
      我們堅信:只有給用戶帶來價值,用戶才會給我們以回報。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多