今天,简单讲讲android里byte的使用。

这个其实很简单,但是自己觉得一直没有完全弄明白,所以记录一下。

byte即字节的意思,是java中的基本类型,用心申明字节型的变量。

通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容,在下载文件时,也是用byte数组作临时的缓冲器接收文件内容。所以说byte在文件操作时是必不可少的。不管是对文件写入还是读取都要用到。
byte在java中是一种是数据类型,代表一个字节,一个字节包含8个位,所以,byte类型的取值范围为-128到127。
在某些程序中(尤其是和硬件有关的程序)会将某些数据存储到字节类型的变量中,比如00110010,其中每个位都代表一个参数,然后以位运算的方式对参数进行取值和赋值操作。

下面介绍一些byte的相关函数:

一、实现功能

1、int与byte互转

2、int与byte[]互转

3、short与byte互转

4、short与byte[]互转

5、16位short与byte[]互转

6、long与byte[]互转

7、byte[]与inputstream互转

8、byte与String互转

9、16进制字符转int

10、十进制转2进制

11、byte[]转16进制字符

12、byte[]数组指定位置抽取byte[]

二、代码实现

package cc.eguid.util;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
/*** 基本数据互转工具* @author eguideguid的官网:www.eguid.cc*eguid的csdn博客:http://blog.csdn.net/eguid_1,博客园:http://www.cnblogs.com/eguid */
public class ByteUtil {private static ByteBuffer buffer = ByteBuffer.allocate(8);/*** int转byte* @param x* @return*/public static byte intToByte(int x) {  return (byte) x;  }  /*** byte转int* @param b* @return*/public static int byteToInt(byte b) {  //Java的byte是有符号,通过 &0xFF转为无符号return b & 0xFF;  }  /*** byte[]转int* @param b* @return*/public static int byteArrayToInt(byte[] b) {  return   b[3] & 0xFF |  (b[2] & 0xFF) << 8 |  (b[1] & 0xFF) << 16 |  (b[0] & 0xFF) << 24;  }public static int byteArrayToInt(byte[] b, int index){return   b[index+3] & 0xFF |  (b[index+2] & 0xFF) << 8 |  (b[index+1] & 0xFF) << 16 |  (b[index+0] & 0xFF) << 24;  }/*** int转byte[]* @param a* @return*/public static byte[] intToByteArray(int a) {  return new byte[] {  (byte) ((a >> 24) & 0xFF),  (byte) ((a >> 16) & 0xFF),     (byte) ((a >> 8) & 0xFF),     (byte) (a & 0xFF)  };  }  /** * short转byte[]*  * @param b * @param s * @param index */  public static void byteArrToShort(byte b[], short s, int index) {  b[index + 1] = (byte) (s >> 8);  b[index + 0] = (byte) (s >> 0);  }/** * byte[]转short *  * @param b * @param index * @return */  public static short byteArrToShort(byte[] b, int index) {  return (short) (((b[index + 0] << 8) | b[index + 1] & 0xff));  }/** * 16位short转byte[] *  * @param s *            short * @return byte[]* */  public static byte[] shortToByteArr(short s) {  byte[] targets = new byte[2];  for (int i = 0; i < 2; i++) {  int offset = (targets.length - 1 - i) * 8;  targets[i] = (byte) ((s >>> offset) & 0xff);  }  return targets;  }/*** byte[]转16位short* @param b* @return*/public static short byteArrToShort(byte[] b){return byteArrToShort(b,0);}/*** long转byte[]* @param x* @return*/public static byte[] longToBytes(long x) {  buffer.putLong(0, x);  return buffer.array();  }  /*** byte[]转Long* @param bytes* @return*/public static long bytesToLong(byte[] bytes) {  buffer.put(bytes, 0, bytes.length);  buffer.flip();//need flip   return buffer.getLong();  }/*** 从byte[]中抽取新的byte[]* @param data - 元数据* @param start - 开始位置* @param end - 结束位置* @return 新byte[]*/public static byte[] getByteArr(byte[]data,int start ,int end){byte[] ret=new byte[end-start];for(int i=0;(start+i)<end;i++){ret[i]=data[start+i];}return ret;}/*** 流转换为byte[]* @param inStream* @return*/public static byte[] readInputStream(InputStream inStream) {ByteArrayOutputStream outStream = null;try {outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];byte[] data = null;int len = 0;while ((len = inStream.read(buffer)) != -1) {outStream.write(buffer, 0, len);}data = outStream.toByteArray();return data;}catch (IOException e) {return null;} finally {try {if (outStream != null) {outStream.close();}if (inStream != null) {inStream.close();}} catch (IOException e) {return null;}}}/*** byte[]转inputstream* @param b* @return*/public static InputStream readByteArr(byte[] b){return new ByteArrayInputStream(b);}/*** byte数组内数字是否相同* @param s1* @param s2* @return*/public static boolean isEq(byte[] s1,byte[] s2){int slen=s1.length;if(slen==s2.length){for(int index=0;index<slen;index++){if(s1[index]!=s2[index]){return false;}}return true;}return  false;}/*** byte数组转换为Stirng* @param s1 -数组* @param encode -字符集* @param err -转换错误时返回该文字* @return*/public static String getString(byte[] s1,String encode,String err){try {return new String(s1,encode);} catch (UnsupportedEncodingException e) {return err==null?null:err;}}/*** byte数组转换为Stirng* @param s1-数组* @param encode-字符集* @return*/public static String getString(byte[] s1,String encode){return getString(s1,encode,null);}//测试public static void main(String []args){System.err.println(isEq(new byte[]{1,2},new byte[]{1,2}));}/*** 字节数组转16进制字符串* @param b* @return*/public static String byteArrToHexString(byte[] b){String result="";for (int i=0; i < b.length; i++) {result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring(1);}return result;}/*** 16进制字符创转int* @param hexString* @return*/public static int hexStringToInt(String hexString){return Integer.parseInt(hexString,16);}/*** 十进制转二进制* @param i* @return*/public static String intToBinary(int i){return Integer.toBinaryString(i);}
}

android byte的使用就讲完了

就这么简单。



android byte的使用相关推荐

  1. android byte[]与图片的转换

    今天,简单讲讲android如何将byte数组的数据转换成图片显示. 之前,在做一个功能时,从服务器获得了图片的byte数组的数据,需要将数据转成图片显示在手机上,或者保存在文件里.当时居然不知道怎么 ...

  2. android byte[] 清空,android byte的使用

    释放双眼,带上耳机,听听看~! 今天,简单讲讲android里byte的使用. 这个其实很简单,但是自己觉得一直没有完全弄明白,所以记录一下. byte即字节的意思,是java中的基本类型,用心申明字 ...

  3. android byte[] 转string 好多问号_#WIPI# Android使用HID设备

    哈罗大家好.生活总是这样计划赶不上变化,今天为大家分享一下新加的小功能--使用Android设备连接HID设备. 安卓内部已经内置了丰富的驱动,所以一般的设备我们只需要简单是设置就可灵活使用. 首先对 ...

  4. android byte[] 转string 好多问号_Android 仿抖音实现动态壁纸

    code小生,一个专注 Android 领域的技术平台 公众号回复 Android 加入我的安卓技术群 作者:7_px 链接:https://www.jianshu.com/p/fc5cf284abb ...

  5. android byte转string_唠点儿你不一定知道的Android小知识

    本文作者 作者:郑卫超 链接: https://vchao.blog.csdn.net/article/details/104349868 本文由作者授权发布. 1. YYYY 和 yyyy 不一样 ...

  6. android byte转string_高性能AES256对称加解密,兼容Java、IOS、Android

    最近在设计一个给IOS和Android提供接口的项目框架,在接口安全上准备使用常规的加密技术,确保在非法访问接口的情况下拿到的数据一时半会也没用. 查了相关的资料,用的最多的几种加密算法,DES.AE ...

  7. android byte转字符串,Andriod | Byte和String的相互转换

    核心: String和Byte间的相互转换 1.png 几行代码,教你最简单的转换, 然鹅,在实际应用过程中,数据的复杂性不只是我们简单的两句话就可以转换了的.那么就来看一下我昨天遇到的问题 需求: ...

  8. android byte[] 转string 好多问号_java程序员面试遇到string题如何不凉?

    原标题:java程序员面试遇到string题如何不凉? 最近看到好多同学都在储备面试知识,以备来年轻松应对面试官,拿到心仪offer,之前好多同学反映遇到string,都只能送给自己一首凉凉.别凉,今 ...

  9. android byte转16进制字符串,如何将字节数组转换为十六进制字符串,反之亦然?...

    我通过一些粗略的Stopwatch性能测试运行了各种转换方法,一个带有随机句子的运行(n = 61,1000次迭代)和一个带有Project Gutenburg文本的运行(n = 1,238,957, ...

最新文章

  1. leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)
  2. python中pickle模块的用法_Python中json模块和pickle模块的简单介绍(附示例)
  3. 懒人修仙传ce修改方法_专访|《凡人修仙传》原著作者忘语:“韩老魔”原型是我...
  4. 学会 配置文件+反射,走遍全球都不怕.
  5. python字符串与数字转换,python 字符串和整数的转换方法
  6. 技巧 | Markdown 语法中首行缩进的方法
  7. 2022.03.15 Arcmap栅格数据无法按照拟定范围进行重分类的解决方案
  8. IsPostBack是什么意思,如何运用?
  9. c#程序设计实训报告心得体会_C程序设计实训个人总结(推荐五篇)
  10. php ajax 域名查询,PHP+AJAX 实现域名查询系统
  11. matlab 中peaks函,peaks_matlab中PEAKS
  12. Ubuntu下安装Maskrcnn_benchmark(pytorch)踩坑分享
  13. pytorch指定版本更新
  14. 8086的两种工作模式_8086系统中最小模式与最大模式两种工作方式的主要区别是什么?...
  15. Qt下使用vs编译的库文件
  16. 智力题——1红蓝墨水
  17. js 中 中文、空格、数字、字符串混合排序
  18. 分支与循环结构测试题(有答案版)
  19. 一键U盘装系统 电脑为什么突然打不开
  20. gpgpu_GPGPU Java编程

热门文章

  1. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
  2. 爬虫——模拟点击动态页面
  3. 信息安全系统设计基础第八周学习总结
  4. 应用程序框架实战三十六:CRUD实战演练介绍
  5. SDOI 2006 - 保安站岗
  6. 安装Nginx时报错 the HTTP cache module requires md5 functions
  7. 转:MySQL史上最全性能优化方式
  8. 【OpenCV入门教程之五】 分离颜色通道多通道图像混合(转)
  9. C# 将List中的数据导入csv文件中
  10. js全选 复选框的问题