精华内容
下载资源
问答
  • android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte.pdf
  • java 字符串 字节数组Today we will learn how to convert String to byte array in java. We will also learn how to convert byte array to String in Java. 今天,我们将学习如何在Java中将String转换为字节数组...

    java 字符串 字节数组

    Today we will learn how to convert String to byte array in java. We will also learn how to convert byte array to String in Java.

    今天,我们将学习如何在Java中将String转换为字节数组。 我们还将学习如何在Java中将字节数组转换为String。

    字符串到字节数组 (String to byte array)

    We can use String class getBytes() method to encode the string into a sequence of bytes using the platform’s default charset. This method is overloaded and we can also pass Charset as argument.

    我们可以使用String类的getBytes()方法使用平台的默认字符集将字符串编码为字节序列。 此方法已重载,我们也可以将Charset作为参数传递。

    Here is a simple program showing how to convert String to byte array in java.

    这是一个简单的程序,显示了如何在Java中将String转换为字节数组。

    package com.journaldev.util;
    
    import java.util.Arrays;
    
    public class StringToByteArray {
    
    	public static void main(String[] args) {
    		String str = "PANKAJ";
    		byte[] byteArr = str.getBytes();
    		// print the byte[] elements
    		System.out.println("String to byte array: " + Arrays.toString(byteArr));
    	}
    }

    Below image shows the output when we run the above program.

    下图显示了运行上述程序时的输出。

    We can also get the byte array using the below code.

    我们还可以使用以下代码获取字节数组。

    byte[] byteArr = str.getBytes("UTF-8");

    However if we provide Charset name, then we will have to either catch UnsupportedEncodingException exception or throw it. Better approach is to use StandardCharsets class introduced in Java 1.7 as shown below.

    但是,如果提供了字符集名称,则必须捕获UnsupportedEncodingException 异常或将其抛出。 更好的方法是使用Java 1.7中引入的StandardCharsets类,如下所示。

    byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);

    That’s all the different ways to convert String to byte array in java.

    在Java中,这是将String转换为字节数组的所有不同方法。

    Java字节数组到字符串 (Java byte array to String)

    Let’s look at a simple program showing how to convert byte array to String in Java.

    让我们看一个简单的程序,该程序显示如何在Java中将字节数组转换为String。

    package com.journaldev.util;
    
    public class ByteArrayToString {
    
    	public static void main(String[] args) {
    		byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
    		byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
    
    		String str = new String(byteArray);
    		String str1 = new String(byteArray1);
    
    		System.out.println(str);
    		System.out.println(str1);
    	}
    }

    Below image shows the output produced by the above program.

    下图显示了以上程序产生的输出。

    Did you notice that I am providing char while creating the byte array?

    您是否注意到创建字节数组时提供了char?

    It works because of autoboxing and char ‘P’ is being converted to 80 in the byte array. That’s why the output is the same for both the byte array to string conversion.

    由于自动装箱而起作用,并且char'P'在字节数组中被转换为80。 这就是为什么字节数组到字符串转换的输出相同的原因。

    String also has a constructor where we can provide byte array and Charset as an argument. So below code can also be used to convert byte array to String in Java.

    字符串还有一个构造函数,我们可以在其中提供字节数组和Charset作为参数。 因此,以下代码也可以用于在Java中将字节数组转换为String。

    String str = new String(byteArray, StandardCharsets.UTF_8);

    String class also has a method to convert a subset of the byte array to String.

    String类还具有一种将字节数组的子集转换为String的方法。

    byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
    String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);

    Above code is perfectly fine and ‘str’ value will be ‘PAN’. That’s all about converting byte array to String in Java.

    上面的代码非常好,“ str”值为“ PAN”。 这就是在Java中将字节数组转换为String的全部内容。

    GitHub Repository. GitHub存储库中签出更多数组示例。

    Reference: getBytes API Doc

    参考: getBytes API文档

    翻译自: https://www.journaldev.com/770/string-byte-array-java

    java 字符串 字节数组

    展开全文
  • Java 字节数组流之图片转成字节数组,相当于图片的复制 字符串可以直接读取到字节数组中用(getBytes)   问题:将一张图片读到字节数组里面(所有的东西都能够读到字节数组里面) 思路:先使用文件输入流,通过...

    Java 字节数组流之图片转成字节数组,相当于图片的复制
    在这里插入图片描述
    字符串可以直接读取到字节数组中用(getBytes)

     
    问题:将一张图片读到字节数组里面(所有的东西都能够读到字节数组里面)

    思路:先使用文件输入流,通过程序做一个中转,程序在写出到字节数组中

    还原图片的话:
    将字节数组读取到程序中,程序在写出道文件中

    以程序为中心

    在这里插入图片描述
    上面为比较清楚的图
    上面为比较清楚的图

    某某东西转成字节数组除了字符串其他都需要流来对接

    文件流一定要释放资源

    字节数组流不一定要释放资源

    代码示例:

    /*
     * 1、图片读取到字节数组中
     * 2、字节数组写出到文件(图片)
     */
    public class IOTest09 {
    	
    	public static void main(String[] args) {
    		// 图片转成字节数组
    		byte[] datas = fileToByteArray("E:/gongfang/JavaDemo/linweimao/javaWork/Demo/IO_study02/src/com/lwm/io/p.pngp.png");
    		System.out.println(datas.length);
    		byteArrayToFile(datas, "p-byte.png");
    	}
    	/*
    	 * 1、图片读取到字节数组中
    	 * 	  1)、图片到程序		FileInputStream
    	 *    2)、程序到字节数组   ByteArrayOutputStream
    	 */
    	public static byte[] fileToByteArray(String filePath) {
    		// 1、创建源与目的地
    		File src = new File(filePath);
    		byte[] dest = null;
    		// 2、选择流
    		InputStream is = null;
    		// 有新增方法不能发生多态
    		ByteArrayOutputStream baos = null;
    		try {
    			is = new FileInputStream(src);
    			baos = new ByteArrayOutputStream();
    			// 3、操作(分段读取)
    			byte[] flush = new byte[1024 * 10];// 缓冲容器
    			int len = -1;// 接收长度
    			try {
    				while ((len = is.read(flush)) != -1) {
    					// 写出到字节数组中
    					baos.write(flush,0,len);
    				}
    				baos.flush();
    				// 返回回来,上面调用时就有了
    				return baos.toByteArray();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} finally {
    			// 4、释放资源
    			try {
    				if (null != is) {
    					is.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    
    			}
    		}
    		return null;
    	}
    	
    	/*
    	 * 2、字节数组写出到文件(图片)
    	 * 	  1)、字节数组读取到程序  ByteArrayInputStream
    	 *    2)、程序到文件  FileOutputStream
    	 */
    	public static void byteArrayToFile(byte[] src,String filePath) {
    		// 1、创建源
    		File dest = new File(filePath);
    		// 2、选择流
    		InputStream is = null;
    		OutputStream os = null;
    		try {
    			is = new ByteArrayInputStream(src);
    			os = new FileOutputStream(dest);
    			// 3、操作(分段读取)
    			byte[] flush = new byte[5];// 缓冲容器
    			int len = -1;// 接收长度
    			while ((len = is.read(flush)) != -1) {
    				os.write(flush,0,len);
    			}
    			os.flush();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			// 释放资源
    			try {
    				if (null != os) {
    					os.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    
    		}
    	}
    }
    

    字节数组不同于字节文件,字节文件是保存在硬盘上的,操作系统对其进行统一管理,使用完需要关闭。而字节数组不需要通知操作系统,然后对该资源进行管理。

    文件流最后都需要执行close方法,关闭输入流或者输出流,这是因为文件是存储在硬盘上的,Java 虚拟机无法直接访问这些资源,只能通过操作系统访问,访问完后要通知操作系统释放资源.而字节数组流访问的是内存,Java 可以直接访问无需操作系统,操作完成后可以通过Java 的垃圾回收机制(gc)释放.

    这个小伙伴的注释多一些:https://www.cnblogs.com/zhangqiling/p/11443923.html

    展开全文
  • 设置一个命中变量,初始化为0,记录两个数组连续连续命中的字节数量,命中数量等于字节数组B的长度时,返回true,如果循环到最后一个字节或者剩余字节长度小于字节数组B的长度时,命中变量都不等于字节数组B的长度,...

    目标

    实现一个字节数组A包含另一个字节数组B的算法,顺序一致

    原理

    设置一个命中变量,初始化为0,记录两个数组连续连续命中的字节数量,命中数量等于字节数组B的长度时,返回true,如果循环到最后一个字节或者剩余字节长度小于字节数组B的长度时,命中变量都不等于字节数组B的长度,则返回false

    算法

    • 1.如果字节数组B长度大于字节数组A的长度,直接返回false
    • 2.循环获取字节数组的每个字节值
    • 3.命中变量等于字节数组B的长度,返回true
    • 4.当前字节值是否等于索引为命中变量值的字节数组B中的字节值,如果是,命中变量自增1,continue到第2步继续下一个字节值的对比,否则继续第5步
    • 5.命中变量置0
    • 6.判断字节数组A的剩余字节数长度是否大于字节数组B的长度,如果大于则跳转到第2步执行循环体,否则跳出,返回false

    实践

    /**
    	 * 判断是否一个字节数组按顺序包含另一个字节数组
    	 * 
    	 * @param pSrcByteArray
    	 * @param pSubByteArray
    	 * @return
    	 */
    	public static boolean isIncludeByteArray(byte[] pSrcByteArray, byte[] pSubByteArray) {
    		boolean retValue = false;
    		int lvSrcByteArrayLen = pSrcByteArray.length;
    		int lvSubByteArrayLen = pSubByteArray.length;
    		
    		while(true) {
    			if(lvSrcByteArrayLen < lvSubByteArrayLen) {
    				break;
    			}
    			int lvHitByteNumberValue = 0;
    			for(int i=0; i<lvSrcByteArrayLen; i++) {
    				int tvByteValue = pSrcByteArray[i];
    				if(lvHitByteNumberValue == pSubByteArray.length) {
    					retValue = true;
    					break;
    				}
    				if(tvByteValue == pSubByteArray[lvHitByteNumberValue]) {
    					lvHitByteNumberValue++;
    					continue;
    				}
    				lvHitByteNumberValue = 0;
    				//剩余字节数
    				int tvRemaindingByteLen = lvSrcByteArrayLen - i - 1;
    				if(tvRemaindingByteLen < pSubByteArray.length) {
    					break;
    				}
    			}
    			break;
    		}
    		return retValue;
    	}
    
    展开全文
  • C#二进制字节数组操作函数 截取字节数组SubByte /// /// 截取字节数组 /// /// 要截取的字节数组 /// 开始截取位置的索引 /// 要截取的字节长度 /// 截取后的字节数组 public byte[] SubByte(byte[] srcByt

    C#二进制字节数组操作函数 截取字节数组SubByte

            /// <summary>
            /// 截取字节数组
            /// </summary>
            /// <param name="srcBytes">要截取的字节数组</param>
            /// <param name="startIndex">开始截取位置的索引</param>
            /// <param name="length">要截取的字节长度</param>
            /// <returns>截取后的字节数组</returns>
            public byte[] SubByte(byte[] srcBytes, int startIndex, int length)
            {
                System.IO.MemoryStream bufferStream = new System.IO.MemoryStream();
                byte[] returnByte = new byte[] { };
                if (srcBytes == null) { return returnByte; }
                if (startIndex < 0) { startIndex = 0; }
                if (startIndex < srcBytes.Length)
                {
                    if (length < 1 || length > srcBytes.Length - startIndex) { length = srcBytes.Length - startIndex; }
                    bufferStream.Write(srcBytes, startIndex, length);
                    returnByte = bufferStream.ToArray();
                    bufferStream.SetLength(0);
                    bufferStream.Position = 0;
                }
                bufferStream.Close();
                bufferStream.Dispose();
                return returnByte;
            }
    
        }

    展开全文
  • 废话不多说,直接上代码。处理字节数组的常用方法,包括字节数组的拼接/拆分,转换等。做数据处理时用得着!
  • //读取文件字节流到字节数组 public static byte[] fileToByteArray(String srcPath) { // 创建源和目的地 File src = new File(srcPath); byte[] datas = null; // 选择流 try (InputStream is = new ...
  • 字节数组流对象字节数组流对象分为输入流和输出流。分别是:ByteArrayInputStream和ByteArrayOutputStream。ByteArrayInputStream类字节数组输入流在内存创建一个字节数组缓冲区,从输入流读取的数据保存在该字节...
  • 易语言字节集与字节数组交换源码,字节集与字节数组交换,快速法_交换字节集与字节型数组,开始测试,结束测试,输出,结束并输出,取启动时间_,NtQuerySystemInformation
  • java判断一个字节数组在另一个字节数组的位置 有时候需要判断,一个字节数组在另一个字节数组的位置,其实只要判断第一位相等,然后后面多位持续比较,就可以判断是否有完全相同的片段。 由于项目需要,自己写了几...
  • 易语言字节集与字节数组快速互转源码,字节集与字节数组快速互转,字节集到字节型数组,字节型数组到字节集,字节集到字节型数组_,复制内存_字节集
  • 字节数组

    千次阅读 2019-04-04 15:23:01
    Java语言中,中文字符所占的字节数取决于字符的编码方式 编码方式 内容 字节大小 ISO8859-1 一个中文字符 1字节 ISO8859-1 一个英文字符 1字节 GB2312 一个中文字符 2字节 GB2312 一个英文字符 1字节 ...
  • 易语言整数到字节数组源码,整数到字节数组,十到十六,到十六进制文本
  • 易语言源码易语言整数到字节数组源码.rar 易语言源码易语言整数到字节数组源码.rar 易语言源码易语言整数到字节数组源码.rar 易语言源码易语言整数到字节数组源码.rar 易语言源码易语言整数到字节数组源码.rar ...
  • 作业三 字节数组与int类型之间的转化 (1) 将int转化为长度为4的字节数组; (2) 将长度为4的字节数组转为为int类型。
  • ///  /// 图片转为Byte字节数组  ///  /// 路径  /// 字节数组  private byte[] imageToByteArray(string FilePath)  {  using (MemoryStream ms = new MemoryStre
  • java 十六进制字符串 转成 byte 数组/字节数组,以及 字节数组 转成 16进制的字符串: // isEmpty public static boolean isEmpty( String str ){ if( str == null || str.equals( "" ) ){ return true; ...
  • import java.nio.charset.Charset; import org.apache.commons.lang3.ArrayUtils;... * @Description: 字节数组转换工具类 * @author fun * @date 2019年3月27日 */ public class BytesUtil...
  • java中字符串转换为字节数组请问用什么方法,字符串返回字节数组怎么做?
  • asm快速字节数组交换字节集
  • 程序中的所有数在计算机内存中都是以二进制的形式储存的。所以有时候我们还是有必要学习一下位运算的。我们知道在java中一个整型是占用四个字节32位的,而一 个byte类型占用一个字节8位的。...字节数组表示一个整型
  • 易语言字节集与字节数组交换源码
  • 作业要求补全附件中的程序ConvertUtil类。 说明:完成字节数组与BASE64编码、字节数组与十六进制的转换
  • //字符串转换为字符串数组 string str= "A B C D E F"; //可根据字符串特点,用SPlit... //attr={"A","B","C","D","E","F"}//字符串转换为字节数组 string Msg = "你好123"; byte[] msg = Encoding.Default.GetByte
  • public byte [ ] GetMsgAtTail ( int spieces , byte [ ] msg2Spilt ) ...将一个字节数组传入,方法会将字节数组分隔成指定的份数,返回最末尾那一份的字节数组。 ——艾孜尔江撰。
  • 字节数组添加空格

    2018-04-09 16:31:08
    字节数组添加空格,把数组自动添加空格,方便查看内容。
  • 固定大小字节数组(Fixed-size byte arrays) 固定大小字节数组可以通过 bytes1, bytes2, bytes3, …, bytes32来进行声明。PS:byte的别名就是 byte1。 bytes1只能存储一个字节,也就是二进制8位的内容。 bytes2...
  • 主要介绍了C#中结构体和字节数组转换实现,本文直接给出了字节数组与结构体的转换代码,代码中包含详细注释,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 667,720
精华内容 267,088
关键字:

字节数组