- 浏览: 162746 次
- 性别:
- 来自: 北京
最新评论
-
tanliwei:
Mr-su 写道行业(xingye),why?行是个多音字。
...
利用Java开源库把汉字转拼音 -
u148:
java.io.IOException: Stream clo ...
自己封装的一个编码转换工具类 -
Mr-su:
行业(xingye),why?
利用Java开源库把汉字转拼音 -
364902709:
此意悠悠 写道不可能的,java反射刚出来,最差的时候是正常编 ...
测试Java反射效率 -
此意悠悠:
不可能的,java反射刚出来,最差的时候是正常编程的10倍时间 ...
测试Java反射效率
java做编码转换有两中方法
1.基于流的编码转换
InputStream is = Main.class.getResourceAsStream(fileName); BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8")); String tmp; while((tmp = br.readLine()) != null){ System.out.println(tmp); }
2.基于字符的编码转换
InputStream is = Main.class.getResourceAsStream(fileName); BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8")); String tmp; while((tmp = br.readLine()) != null){ System.out.println(tmp); }
我这里用的是第一种方法,其他不多说了直接贴代码了
import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; public class EncodingConverter { public static final String UTF_8 = "UTF-8"; public static InputStream converter(InputStream is, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc)); return tarIs; } public static InputStream converterToUTF(InputStream is, String srcEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes("utf-8")); return tarIs; } public static byte[] converterToByteArray(InputStream is, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array return sb.toString().getBytes(tarEnc); } public static byte[] converterToUTFByteArray(InputStream is, String srcEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array return sb.toString().getBytes("utf-8"); } public static String converterToString(InputStream is, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); return sb.toString(); } public static String converterToUTFString(InputStream is, String srcEnc) throws IOException { // builder a reader using source encoding Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); return sb.toString(); } public static InputStream converter(byte[] bytes, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc)); return tarIs; } public static InputStream converterToUTF(byte[] bytes, String srcEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes("utf-8")); return tarIs; } public static byte[] converterToByteArray(byte[] bytes, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array return sb.toString().getBytes(tarEnc); } public static byte[] converterToUTFByteArray(byte[] bytes, String srcEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); // get byte array return sb.toString().getBytes("utf-8"); } public static String converterToString(byte[] bytes, String srcEnc, String tarEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); return sb.toString(); } public static String converterToUTFString(byte[] bytes, String srcEnc) throws IOException { // builder a reader using source encoding InputStream is = new ByteArrayInputStream(bytes); Reader reader = new InputStreamReader(is, srcEnc); StringBuilder sb = new StringBuilder(); // read content int c; while ((c = reader.read()) != -1) { sb.append((char) c); } reader.close(); return sb.toString(); } public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("G:/out.txt"); is = converter(is, "utf-8", "gbk"); Reader isr = new InputStreamReader(is, "gbk"); StringBuilder sb = new StringBuilder(); int c; while ((c = isr.read()) != -1) { sb.append((char) c); } is.close(); System.out.println(sb.toString()); } }
评论
2 楼
u148
2014-10-13
java.io.IOException: Stream closed
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:325)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.read(BufferedReader.java:175)
有时候会报这个错误.
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:325)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.read(BufferedReader.java:175)
有时候会报这个错误.
1 楼
tutu1982
2009-05-02
。。。。。。。。。。。
发表评论
-
管中窥豹,结合多线程,对于tomcat中servlet加载的一点试探
2010-05-18 23:58 3157对于Servlet自己的生命周 ... -
测试Java反射效率
2010-05-15 23:58 6302测试分为3个方面:1. 实例化效率;2. 方法调用效率;3. ... -
传一本书里的代码
2010-04-13 22:24 1354RT 我把编译产生的bin删了,小了很多 -
想想我們大學都教了啥, 差距呀
2010-03-27 01:02 1109昨天还发现了一个新的概念,叫OAuth,OpenSSO ... -
我也說說OpenSSO
2010-03-24 22:24 1499昨天看到Oracle要關閉OpenSSO的消息,還說要 ... -
考慮用g4j實現一個gmail客戶端
2010-03-20 20:37 1030公司考慮信息安全,所以圖允許我們在公司里使用gmail ... -
Gmailer api for java
2010-03-19 16:43 1020今天研究了一下子g4j,這個東西,沒弄完,因為公司里面不能隨便 ... -
网站莫名其妙老是挂,原来是线程数太小
2009-11-04 07:54 3285昨天下午我们那个网站忽然变得很慢,我登上去看了下,没发现什么异 ... -
我设计的权限管理方案
2009-06-15 00:34 1845这是给我们学校的某管 ... -
自己做的简单的web服务器
2009-06-14 20:39 2427我最近修的电子商务概论的课程,老师布置的作业,是要做个简单的w ... -
(两年前初学JAVA时写过的一篇文章,发现给我们班同学看还挺有用的)
2009-06-04 04:02 1236最近装了 fedora 7感觉满好,虽然许多人都推崇ubunt ... -
记两次服务器不能启动大原因
2009-05-25 22:44 1141遇到这种很诡异的情况,tomcat无缘无故不能启动,一直处于s ... -
利用Java开源库把汉字转拼音
2009-05-21 02:52 35310最近做的项目,因为下拉框中的项目太多,需要有个过滤的方法。我想 ... -
java 预申请磁盘空间处理大文件
2009-05-09 03:40 1586熟悉电驴和bt的你可能经常看到这些软件可以在下载文件之初就先在 ... -
http parser 基本用法
2009-04-24 22:40 8056手动解析HTML是一件很崩溃的事情,sun的swing里也有解 ... -
用httpclient模仿firefox发送http请求
2009-04-10 12:18 7163最近需要做爬虫,研究了一下进行做http客户端的东 ... -
在Java中实现伪静态页面
2009-02-18 14:58 3499在Java中做这个事情好像有很多中方案,比较简单的方法是使用U ... -
关于Hibernate懒加载问题的最终解决方案
2009-02-18 14:40 12486Hibernate的强大之处之一是懒加载功能,可以有效的降低数 ...
相关推荐
总结来说,"易语言批量编码转换工具源码.rar"提供的资源是一个完整的易语言编程实例,涵盖了编码转换的核心技术、扩展模块的使用以及源码的解读。通过研究这个工具,不仅可以掌握易语言的编码处理技巧,还能了解如何...
在Java编程环境中,开发一个视频转换工具类是一个高级任务,涉及到多媒体处理和文件I/O操作。这个"java视频转换工具类"显然提供了这样的功能,能够将视频文件转换为不同的格式,如mp4、ogg和flv等。这些格式在互联网...
这个命令会将`.h264`和`.aac`文件封装到一个FLV文件中。 5. **添加ADTD头**: ADTD(Audio Data Transport Stream with ADTS Header)是AAC数据的一种特定表示形式,带有AAC的头部信息,使得数据流能够被FLV等...
微信支付工具类是一系列用于处理微信支付业务的Java类,它们封装了与微信支付接口交互的逻辑,使得开发者能够更方便地集成微信支付功能到自己的应用程序中。以下是对这些类的功能和作用的详细说明: 1. **WXPay....
在Android应用开发中,工具类(Utils)的封装是一个重要的环节,它可以帮助开发者高效地复用代码,提高开发效率。本项目"基于Android系统Api封装常用工具类"就是这样一个资源库,它集成了Android API的各种实用功能...
因此,需要通过编码转换工具进行转换,确保文件内容正确显示。 4. **批量转换**:批量转换功能允许用户一次性处理多个文件,提高工作效率。这在处理大量文档,如日志、文本档案时尤其有用。 5. **正则表达式检索**...
FFmpeg 是一个强大的开源命令行工具,用于处理音频和视频文件。它支持各种编码、解码、转换、流媒体操作,以及许多其他功能。在Java开发中,通过封装FFmpeg命令,可以方便地在应用程序中集成音视频处理功能。本...
本文将深入探讨一个支持ASCII和Unicode编码的日志封装类的设计和实现,以`Log.cpp`和`Log.h`两个文件为例。 首先,`Log.h`文件通常包含类的声明,定义了日志类的接口。这个类可能包含以下几个关键部分: 1. **类...
本篇将重点介绍一个名为"String封装工具类"的Java库,它提供了一系列方便、高效的字符串处理方法。 这个工具类通常包含了对字符串的各种操作,如拼接、格式化、查找、替换、分割、去空格、大小写转换等。在Java中,...
在IT行业中,"采集封装编码传输"是一个非常关键的概念,特别是在视频流媒体和网络监控领域。这个过程涉及了从原始数据获取、结构化处理、压缩优化到最终通过网络进行高效传输的一系列步骤。以下是对这一过程的详细...
而这里的"一个CURL写的类"则是将CURL的功能封装成一个面向对象的PHP类,方便开发者进行数据采集和编码转换操作。下面我们将详细讨论这个类的可能实现和相关知识点。 首先,`Once`方法代表单个网站信息采集。在数据...
在电子设计领域,电路板设计软件的互操作性是一个重要的课题。Altium Designer是一款广泛应用的PCB设计工具,而Allegro则是Cadence公司的产品,主要用于半导体和电子行业的PCB布局布线。当设计师需要在两者之间进行...
这个是一个基于netbeans下开发的有操作界面的编码转换工具,其中只是将java自带的native2ascii工具做了一次封装,让其具有方便的界面操作,它可以实现将你想要转换的文件/文件夹拖入输入框,又可以通过设置你机子上...
在IT领域,编码转换是一个非常重要的主题,尤其是在处理不同字符集和编码标准时。"新编码转换大全模块+应用例程.rar" 提供的资源很可能是一个包含多种编码转换方法的软件模块,以及演示如何使用这些模块的应用程序...
- **数据解析**:接收服务器响应后,进行数据解析,可能涉及编码转换、JSON解析等。 2. **请求方法**:常见的HTTP请求方法有GET、POST、PUT、DELETE等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,...
FFmpeg是一个开源项目,它包含了多种音视频处理工具,其中包括编码、解码、转换、流媒体等功能。在本文中,我们将深入探讨如何将FFmpeg封装为一个编码库,以及这个库可能包含的关键知识点。 首先,FFmpeg的核心是其...
9. **安装程序svcSetup.exe**:这个文件名svcSetup.exe通常指的是一个安装程序,可能是视频转换工具的安装包。安装程序会引导用户完成软件的下载和安装步骤,将其添加到计算机中以便使用。 10. **安全与隐私**:在...
在IT行业中,编码转换是一个常见的问题,特别是在处理不同来源或平台的文件时。Java作为一种广泛使用的编程语言,处理文件编码转换也是其能力之一。本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java...
"AD封装库 常用音视频类封装"是一个专门针对这一领域的工具集,它提供了一套完整的音视频处理解决方案,帮助开发者更便捷地实现相关功能。 首先,我们要理解“封装”的概念。在编程中,封装是面向对象编程的一个...
总的来说,通过C++实现H264视频编码到avi/mp4封装是一个涉及到编码理论、多媒体容器格式以及文件操作的复杂过程。熟练掌握这一技术,不仅可以提升多媒体处理的效率,还能为开发自己的视频处理工具或系统打下坚实基础...