Java中使用unicode编码,各操作系统有自己的默认编码,如果我们要将随机数写到文件中必须将其转化成某种编码格式的字符串,我们选择系统的默认 字符集,然后将其写入:private void gernate() {
File file = new File(FILE_PATH);
FileOutputStream fos = null;
FileChannel channel = null;
ByteBuffer byteBuffer = ByteBuffer.allocate(SIZE);
String tem = null;
byte[] bytes = null;
long begin = System.currentTimeMillis();
long end = 0;
int num = 0;
try {
log.info("begin:" + begin);
fos = new FileOutputStream(file);
channel = fos.getChannel();
Random random = new Random();
for (int i = 0; i < MAX_NUM; i++) {
num = random.nextInt(MAX_NUM);
tem = String.valueOf(num);
tem += i < MAX_NUM - 1 ? "中普朗克y" : "";
bytes = tem.getBytes();
if (byteBuffer.remaining() < bytes.length) {
byteBuffer.flip();
channel.write(byteBuffer);
byteBuffer.clear();
}
byteBuffer.put(bytes);
}
byteBuffer.flip();
channel.write(byteBuffer);
fos.close();
end = System.currentTimeMillis();
log.info("end:" + end + ",use :" + (end - begin));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这里需要注意的是String.getBytes()方法,将unicode字符转化成系统的默认字符序列。
对于写入的文件解码问题:我们使用CharsetDecoder,完全相反的操作,解码器在其中保存一定的状态,对于解码会返回结果状态:
public void count() {
File file = new File(FILE_PATH);
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
FileChannel channel = fis.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate(5);
CharBuffer charBuffer=CharBuffer.allocate(57);
Charset charset=Charset.defaultCharset();
CharsetDecoder decoder = charset.newDecoder();
CoderResult decodeResult=CoderResult.OVERFLOW;
while(channel.read(byteBuffer)!=-1){
byteBuffer.flip();
while(decodeResult==CoderResult.OVERFLOW){
decodeResult = decoder.decode(byteBuffer, charBuffer, false);
System.out.println(decodeResult);
charBuffer.flip();
System.out.print(charBuffer.toString());
charBuffer.clear();
}
if(decodeResult==CoderResult.UNDERFLOW){
byteBuffer.compact();
decodeResult=CoderResult.OVERFLOW;
}
}
System.out.println();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
- **源码包**:包含了实现TLV编码解码的Java源代码,可以学习和理解其内部实现逻辑。 - **Demo**:一个带有详细注释的示例程序,展示了如何使用这个库进行编码和解码操作,可以帮助开发者快速上手。 为了更好地利用...
本程序利用Java实现以下功能: 1、读取一行或多行数据,统计出现的所有字母的出现次数 2、构造huffman树 3、生成出现字母的编码表 4、对输入的数据进行...5、输入编码结果,对编码结果进行解码,得到原来的输入数据。
本项目名为“java二维码编码解码测试”,其核心是利用QRCoder这个Java库进行二维码的编码和解码操作。 QRCoder是一个简洁且易于使用的Java库,专门用于创建二维码。它允许开发者将各种类型的数据,如文本、URL、...
在本文示例中,我们关注的是如何利用Java的Hex编码和解码来处理AES加密和解密的过程。 首先,让我们了解什么是Hex编码。Hex编码是一种将二进制数据转换为可打印字符的表示方式,每个字节被转换为两个十六进制数字...
Base64 编码解码 Java ,Java对字符串Base64 编码解码的方法!!
`调用.txt`文件可能是测试这两种编码解码方法的简单脚本,它会调用Java和JavaScript中的函数,并比较结果是否一致,确保在不同环境下的Base64编码和解码是兼容的。 总之,Java和JavaScript中Base64编码和解码的实现...
"Java基于Base64实现编码解码图片文件" Java基于Base64实现编码解码图片文件是Java语言中的一种常见的编码解码实现方式。Base64是一种常用的字符编码,在很多地方都会用到,但它并不是安全领域下的加密解密算法,...
Java作为广泛使用的编程语言,提供了丰富的库来处理二维码的编码与解码。本文将深入探讨如何在Java环境中实现二维码的编码和解码。 首先,我们需要了解二维码编码的过程。编码是将数据转化为二维码图形的过程。在...
本文将深入探讨“js解码”和“java编码”这两个主题,并结合标签“源码”和“工具”,讨论如何在实际项目中应用它们。 首先,我们来看JavaScript中的解码。JavaScript是一种在客户端和服务器端都能运行的脚本语言,...
一个与Escape编码 解码相关的Java实例代码,其实是一个解码编码类,里面就一个文件。关于解码的说明:本方法保证 不论参数s是否经过escape()编码,均能得到正确的“解码”结果,编码的过程请大家下载源代码查看,本...
在Java编程语言中,`URLDecoder`和`URLEncoder`是两个非常重要的工具类,主要用于处理URL中的中文字符和其他特殊...理解它们的工作原理和使用方法,能帮助开发者避免编码解码过程中的常见问题,保证数据传输的准确性。
"jother编码解码工具"是一个专门用于JavaScript环境中的工具,它能够帮助开发者实现文字到标点符号的转换,这对于某些特定的文本处理任务,如信息加密、数据分析或者用户界面的特殊展示,可能是非常有用的。...
该项目是一个基于Java开发的编码解码工具包源码,包含156个Java源文件、134个文本文件以及少量其他格式文件,如XML、YAML等,共计328个文件。该工具包提供了多种编码解码格式,如Base64和十六进制编码,旨在简化数据...
huffman的java实现 码表生成程序 可对任意“.txt”文件进行概率统计,显示字符及其概率对照表; 依概率编制Huffman码表,显示字符、对应概率及码字对照表。 编码程序 使用码表,对任意“.txt”进行Huffman编码; ...
在Java编程语言中,字符编码和解码是处理文本数据时不可或缺的部分,特别是在网络通信、文件存储或跨系统交互中。Escape.java源代码是专门设计用于处理文本字符的编码和解码操作的一个类。这个类的目标是确保无论...
Java解码工具是一种基于Java语言开发的实用程序,它的主要功能是帮助开发者处理各种编码问题,使得源码的查看和理解变得更加便捷。在编程过程中,我们经常会遇到编码格式不匹配或者编码转换的问题,这时Java解码工具...
项目中用到了AT指令中的GSM短信息的收发,上网找的代码大多都是C或者C++语言编写的,因为我使用的是java语言,于是决定自己编写一套java语言的GSM-PDU模式短信息编码与解码的代码: 1、短信传输分三种模式:Block...
本主题主要关注Java和Android环境下的二维码编码与解码,以及涉及到的jar库,如QRcode和PDF417。 首先,二维码(Quick Response code)是一种二维条形码,能存储比传统一维条形码更多的信息,如网址、文本、联系人...
此工具为Base64 编码解码工具, 需要Java运行环境,所以是实用于Java开发人员需要临时进行Base64编码的处理。