可用于把文件转换成字符串,存储到源文件的String变量中。
package demo;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class TransformUtil {
/*
* Convert byte[] to hex
* string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串。
*
* @param src byte[] data
*
* @return hex string
*/
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
/**
* Convert hex string to byte[]
*
* @param hexString
* the hex string
* @return byte[]
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
/**
* Convert char to byte
*
* @param c
* char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}
public static void main(String[] args) throws IOException {
File file = new File("e:\\consola.ttf");
System.out.println(file.length());
ByteBuffer bb = ByteBuffer.allocateDirect(1024);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
FileChannel fc = new FileInputStream(file).getChannel();
for (;fc.read(bb) > 0;) {
bb.flip();
for(;bb.hasRemaining();){
baos.write(bb.get());
}
bb.clear();
}
System.out.println(bytesToHexString(baos.toByteArray()).trim());
}
}
分享到:
相关推荐
在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...
在计算机科学中,尤其是编程领域,我们经常需要将字符串和Base64编码进行互相转换。下面我们将详细探讨这个过程: 1. **字符串到Base64的转化**: 当我们需要将一个字符串(通常由ASCII字符组成)编码为Base64时,...
`MyClass.class`是Java字节码文件,它是由`MyClass.java`源代码编译而来。这个过程包括将源代码中的字符串常量转换为字节码,这涉及到了String到Byte的转换。`input.txt`可能是一个文本文件,其内容可能需要在网络...
在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...
在Java和Android中,将字节数组转换为字符串最常用的方法是使用`new String(byte[])`构造函数。此方法会使用平台默认的字符编码,这可能会导致在不同系统上显示不同的结果。为了避免这个问题,我们通常指定一个明确...
Java Base64位编码与String字符串的相互转换、Base64与Bitmap的相互转换实例代码 Java Base64位编码与String字符串的相互转换是Java开发中常用的技术,Base64是一种常用的编码方式,它可以将二进制数据编码成可读的...
将图片转换成Base64编码 对字节数组字符串进行Base64解码并生成图片 Base64字符串转byte[] 判断图片base64字符串的文件格式 字符串转base64
Java实现图片与二进制的互相转换 Java实现图片与二进制的互相转换是Java编程中的一项基本操作,它将图片转换为二进制数据,然后再将二进制数据转换回图片。这种操作在多种应用场景中都有其重要价值,例如在网络上...
它将每3个字节的数据拆分为4个6位的“单词”,然后将每个6位的数字映射到一个特定的字符,从而形成可打印的ASCII字符串。 PDF与Base64之间的转换涉及到文件处理和数据编码的知识点: 1. **PDF转Base64**: 当你...
本文将详细解析JAVA中各种基本数据类型(如`byte`、`short`、`int`、`long`、`float`、`double`)以及它们与字符型、字符串型、日期型等之间的转换机制。 #### 基本数据类型及其取值范围 - **`byte`**:取值范围为...
在Java中,`Character`类提供了转换方法,如`Character.codePointAt()`用于获取码点,`String.getBytes()`和`new String(bytes, "charset")`用于字节与字符串的转换。 此外,HTML文件中,`ZHS_Unicode.html`可能...
3. 字符串与字符数组的转换:String底层是靠字符数组实现的,因此可以将String对象与char数组互相转换。 String类的构造方法使用举例: - 无参构造方法:public String(),用于创建一个空的字符串对象。 - 通过字符...
同时,由于JavaScript可能无法处理字节流,所以可能需要将加密后的字节转换为Base64编码的字符串。在Java端解密时,需要先将Base64字符串解码回字节流。 5. **文件`DES加密解密`**: 压缩包中的文件可能包含了Java...
- 将图片转换为Base64字符串时,首先读取图片文件的二进制数据,然后按照Base64编码规则进行转换。生成的字符串可以嵌入到HTML的`<img>`标签中,通过`data:`协议直接显示图片,无需HTTP请求。 - 示例代码(Python...
要使用这些方法,你可以创建一个URL字符串,然后调用`toUtf8String`进行编码,再调用`unescape`进行解码,以确保原始字符串和编码后的字符串可以正确地互相转换。 ```java String original = "你好,世界"; String...
2. 创建密钥:将字符串转换为字节数组,然后使用`CryptoJS.DES.createEncryptor`或`CryptoJS.DES.createDecryptor`。 3. 加密/解密:使用`encrypt`和`decrypt`方法,分别处理明文和密文。 要确保Java和JavaScript...
标题中的"unicode码与GB码互相转换"涉及到两种主要的汉字编码标准:Unicode(国际通用的字符编码标准)和GBK(中国国家标准的扩展GB2312编码)。在嵌入式系统或者文件系统中,为了正确显示和存储中文字符,就需要...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的...
### Java核心技术卷1知识点梳理 ...以上是对《Java核心技术卷1》学习笔记的关键知识点梳理,涵盖了Java的基本概念、编程环境、数据类型、字符串操作、控制流结构等内容,有助于初学者快速掌握Java的基础知识。