• 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);
    }
    }

    知识重在总结和梳理,只有不断地去学习并运用,才能化为自己的东西。由于本人进阶猿类时间尚短,故此博客即是我学习,工作的笔记,也是和大家交流,相互提升技术的平台~希望大家不吝赐教~~ --但管努力,莫问前程,事在人为,功不唐捐。--和佑博客园
  • 相关阅读:
    03-字典
    02-列表
    01-字符串操作
    Django中的跨域问题
    Codeforces Round #617 (Div. 3) A
    Codeforces Round #717 (Div. 2) A
    如何在Vuespa中使用less
    excle导出
    ajaxFileUpload上传文件
    图片插入word
  • 原文地址:https://www.cnblogs.com/XHJT/p/3891747.html
Copyright © 2020-2023  润新知