<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評論-598  文章-0  trackbacks-0
    開發的時候發現,C#寫入的字節順序是從低到高(左低到右高),而Java的DataInputStream讀取的數據是從高到低(左高到右低),所以當我們要用Java讀取C#生成的二進制文件的時候,需要將DataInputStream里面的幾個方法重寫或者寫一些輔助方法,例如下面兩個函數是用來讀取C#寫入的無符號Short型和無符號長整型數據。 
    /**
         * 逆轉字節數組
         * 
         * 
    @param b
         * 
    @return
         
    */
        
    private static byte[] reverse(byte[] b) {

            
    byte[] temp = new byte[b.length];
            
    for (int i = 0; i < b.length; i++) {
                temp[i] 
    = b[b.length - 1 - i];
            }
            
    return temp;
        }

        
    /**
         * 讀取無符號位的Short數,16位
         * 
         * 
    @param readBuffer
         * 
    @return
         * 
    @throws IOException
         
    */
        
    public static final BigInteger readUnsignedShort(byte[] readBuffer)
                
    throws IOException {
            
    if (readBuffer == null || readBuffer.length < 2)
                
    return new BigInteger("0");
            
    // 處理成無符號數
            byte[] uint64 = new byte[3];
            uint64[
    2= 0;
            System.arraycopy(readBuffer, 
    0, uint64, 02);
            
    return new BigInteger(reverse(uint64));
        }

        
    /**
         * 讀取無符號位的長整數,64位
         * 
         * 
    @param readBuffer
         * 
    @return
         * 
    @throws IOException
         
    */
        
    public static final BigInteger readUnsignedInt64(byte[] readBuffer)
                
    throws IOException {
            
    if (readBuffer == null || readBuffer.length < 8)
                
    return new BigInteger("0");
            
    // 處理成無符號數
            byte[] uint64 = new byte[9];
            uint64[
    8= 0;
            System.arraycopy(readBuffer, 
    0, uint64, 08);
            
    return new BigInteger(reverse(uint64));
        }


    ---------------------------------------------------------
    專注移動開發

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-05-02 22:25 TiGERTiAN 閱讀(3167) 評論(1)  編輯  收藏 所屬分類: JavaDotNet

    評論:
    # re: C#的BinaryWriter和Java的DataInputStream之間的數據相互轉換 2010-05-04 11:37 | 麗可酷
    DataInputStream之間的數據相互轉換   回復  更多評論
      
    主站蜘蛛池模板: 久久亚洲私人国产精品| 亚洲精品无码久久久久A片苍井空| 国产精品亚洲一区二区三区在线 | 午夜一区二区免费视频| 中文字幕精品亚洲无线码二区| 亚洲无圣光一区二区| 久久久精品视频免费观看| 无码国产精品久久一区免费| 亚洲午夜久久久久妓女影院| 亚洲AV成人一区二区三区观看 | 久久精品国产亚洲av水果派| 日韩av无码久久精品免费| 亚洲不卡AV影片在线播放| 亚洲an日韩专区在线| 无码国产精品一区二区免费16| 免费国产精品视频| 亚洲国产精品综合久久20| 国产精品免费高清在线观看| 亚洲精品线路一在线观看| 亚洲1区2区3区精华液| 免费观看午夜在线欧差毛片| 亚洲一区精品视频在线| 午夜一区二区免费视频| 一级毛片大全免费播放| 免费人成在线观看视频播放| 一级毛片成人免费看a| 亚洲午夜精品久久久久久人妖| 美女网站在线观看视频免费的| 亚洲不卡中文字幕无码| 女人隐私秘视频黄www免费| 亚洲性日韩精品国产一区二区| 国产成人亚洲精品蜜芽影院| 日韩免费观看视频| 亚洲а∨精品天堂在线| 永久免费视频v片www| 久久精品无码免费不卡| 亚洲AV无码乱码麻豆精品国产| 亚洲av日韩av欧v在线天堂| 午夜免费国产体验区免费的| 亚洲欧洲精品成人久久曰影片 | 免费在线视频你懂的|