public void charsetReadFile(String filename) throws IOException{
FileInputStream fis = new FileInputStream(filename);
//创建文件通道
FileChannel fc = fis.getChannel();
//创建字节缓冲区,分配大小
ByteBuffer bb = ByteBuffer.allocate(1024);
//指定从文件通道中读取的数据需要放在字节缓冲区
fc.read(bb);
//将读取到的数据放入缓冲区中
bb.flip();
//字体设置
Charset c = Charset.forName("GBK");
//根据设置字体产生新的解码器
CharsetDecoder cd = c.newDecoder();
//通过解码器完成数据的转换
CharBuffer cb = cd.decode(bb);
System.out.println(cb);
//资源释放
fc.close();
fis.close();
}
分享到:
相关推荐
Java 中文乱码问题是一个老生常谈的问题,特别是在 Web 应用中。今天,我们将从编码角度分析 Java 编译后在控制台和 Web 等终端显示乱码问题。 一、 Java 处理字符的原理 Java 使用 UNICODE 来存储字符数据,处理...
中文乱码是一个常见的问题,它可能出现在 Java 和 JSP 文件中,也可能出现在 Java 程序与其他媒介交互时。以下是中文乱码的原因和解决方法: Java 和 JSP 文件本身编译时产生的乱码问题 Java 和 JSP 源文件中可能...
这是因为 Drools 的源代码中,在 org.drools.rule.builder.dialect.java.JavaDialect 类中,public void compileAll() 方法里,文件不是使用 UTF-8 编码的。解决方案是修改 addClassCompileTask 方法,使用 getBytes...
在 JAVA 文件中硬编码中文字符,在 eclipse 中运行,控制台输出了乱码。例如,我们在 JAVA 文件中写入以下代码: String text = “大家好”; System.out.println(text); 如果我们是在 eclipse 里编译运行,可能...
在Java开发过程中,文件的编码选择非常重要,因为它直接关系到文件内容如何被正确解释和处理。下面我们将详细探讨Java文件编辑过程中涉及的编码转换流程。 **1.1 当编辑*.java文件时** 当使用记事本等文本编辑器...
- **OS文件系统**:字符可能以不同的编码格式存在于文件系统中,当字符从JVM内部移动到外部时(如写入文件),会发生编码转换。 - **边界转换**:所有编码转换都发生在JVM与OS交互的边界,即输入输出流...
jspSmartUpload是一个基于Java的开源组件,专门用于处理文件上传和下载,它提供了丰富的功能,使得开发者能够方便地在JSP应用中实现这些操作。然而,当面临中文文件名处理和处理小于64K的小文件时,开发者可能会遇到...
在Java中,FileReader和FileWriter是两个基础的字符流类,分别用于读取和写入文本文件。 1. **字符流是什么** 字符流是专门处理字符数据的IO流,它内部会进行字节到字符的转换。当读取文件时,字节数据首先被读取...
本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
然后,我们使用 read.xlsx() 函数读入 Excel 文件,但是发现读入速度较慢,读到最后 java 报崩溃,另外,如果只读入少量数据进行测试时,发现读入的汉字为乱码。于是,我们使用 write.xlsx() 函数生成 xlsx 文件,...
- `pageEncoding`:用于控制JSP文件自身编码格式,即JSP文件从磁盘读入内存时的编码方式。 - `contentType`:用于控制JSP页面输出到客户端时的编码格式,决定了客户端如何解释接收的数据。 2. **生效时间不同**:...
String[] contents = {"aaaaa","bbbbb","cccccc","ddddddddd","不知道中文会不会乱码呢"}; //这个只是测试数据,具体要怎么样的形式保存待定 wr.writeRecord(contents); wr.close(); } catch ...
关于“汉字转UCS-2格式”的转换,这个过程涉及到将汉字从其原始编码(可能是GBK、GB2312或其他)转换为UCS-2编码。这通常需要通过编码转换库或工具完成,如Python的`codecs`模块或Java的`Charset`类。转换步骤包括...