java筆記--關於int和byte[]的轉換


關於int和byte[]數組的轉換

 --如果朋友您想轉載本文章請注明轉載地址"http://www.cnblogs.com/XHJT/p/3891747.html "謝謝--

眾所周知java有8種基本類型,分別是低級變量(byte,char,boolean,shot)和高級變量(int,long,double,float),
低級變量會自動轉化成高級變量,而高級變量則要用強制轉換才能成為低級變量,
可是在文件傳輸和網絡傳輸當中,由於計算機都是以二進制來存儲數據的,所以很多時候我們需要將要用到的數據轉換成字節流來完成傳輸
那么int和byte[]數組之間又是如何轉換的呢?
很多人可能會馬上想到String類型中的getBytes()方法來實現byte[]的轉換,
但可惜的是在int中java沒有並封裝有像這樣的一個方法。
仔細的查看API文檔,我們會發現,其實java還是提供了不錯的解決方案的,
在java.io包下有這么四個類,分別是輸出流ByteArrayOutputStream,DataOutputStream和輸入流ByteArrayInputStream和DataInputStream
通過這四個IO流即可實現int和byte[]數組的轉換。

以下是代碼實例:
package com.xhj.data;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
* int 和 byte[]的相互轉換
*
* @author XIEHEJUN
*
*/
public class IntToButeArray {

/**
* 整數轉換成字節數組 關鍵技術:ByteArrayOutputStream和DataOutputStream
*
* @param n
* 需要轉換整數
* @return
*/
public static byte[] intToButeArray(int n) {
byte[] byteArray = null;
try {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
DataOutputStream dataOut = new DataOutputStream(byteOut);
dataOut.writeInt(n);
byteArray = byteOut.toByteArray();
for (byte b : byteArray) {
System.out.println(" " + b);
}
} catch (IOException e) {
e.printStackTrace();
}
return byteArray;
}

/**
* 字節數組轉換成整數 關鍵技術:ByteArrayInputStream和DataInputStream
*
* @param byteArray
* 需要轉換的字節數組
* @return
*/
public static int byteArrayToInt(byte[] byteArray) {
int n = 0;
try {
ByteArrayInputStream byteInput = new ByteArrayInputStream(byteArray);
DataInputStream dataInput = new DataInputStream(byteInput);
n = dataInput.readInt();
System.out.println("整數為: " + n);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n;
}

public static void main(String[] args) {
byte[] byteArray = intToButeArray(105);
byteArrayToInt(byteArray);
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM