`
huihua
  • 浏览: 62626 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

Java读取文件中含有中文的解决办法

阅读更多
在Eclipse中运行时一直都很正常,但是一旦导出成jar包时就出现错误,不能正确读取中文,试了很多办法都没有用。 什么new String(str.getBytes(), "UTF-8"); 和System.setProperty("file.encoding","UTF-8")都不顶用。
最后发现只要在读取文件内容的时候,把InputStreamReader写成下面这样即可。
InputStreamReader  read = new InputStreamReader(new FileInputStream(f),"UTF-8");

BufferedReader reader=new BufferedReader(read);
String line = null;
while ((line = reader.readLine()) != null) {
     System.out.println(line);
}


通过打开文件是指定文件编码的方法把这个问题轻松的解决了。

最后总结一下:java要读取数据流的时候一定要指定数据流的编码方式(至少读取String流的时候要这么作。

输出文件内容时,转换一下成UTF-8编码,转换方式为:

    /**
     * 中文转unicode
     * 
     * @param str
     * @return 反回unicode编码
     */
    public static String chineseToUnicode(String str)
    {
        String result = "";
        for (int i = 0; i < str.length(); i++)
        {
            int chr1 = (char)str.charAt(i);
            if(chr1 > 0 && chr1 < 11 * 15)
            {
                result += str.charAt(i);
            }
            else if (chr1 <= 0 || chr1 >= 16 * 16 * 16)
            {
                result += "\\u" + Integer.toHexString(chr1);
            }
            else if (chr1 < 16 * 16 * 16 && chr1 >= 16 * 16)
            {
                result += "\\u0" + Integer.toHexString(chr1);
            }
            else if (chr1 < 16 * 16 && chr1 >= 11 * 15)
            {
                result += "\\u00" + Integer.toHexString(chr1);
            }
        }
        return result;
    }
1
0
分享到:
评论
1 楼 tongjian 2009-03-25  
输出文件内容时:
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
out.write(content);
out.close();

相关推荐

    Java读取含中文key的properties文件

    以下将详细介绍如何在Java中读取含中文key的Properties文件,并利用反射调用相关方法。 首先,我们需要理解Java的Properties类。`java.util.Properties`是Java标准库中的一个类,它提供了一种加载和保存属性列表的...

    JAVA解决URL路径中含有中文的问题

    JAVA解决URL路径中含有中文的问题。无论是路径中还是文件名包含中文都可以处理。经测试验证通过。

    java properties文件中文转化

    博主分享了一个实用的方法,即通过Unicode转换工具来处理含有中文字符的properties文件,以确保数据的正确性。 首先,我们需要理解Java Properties文件的编码问题。默认情况下,Java Properties类在读取和写入文件...

    Java读取Excel文件

    java使用的jpoi读取execl文件 该资源含有最新的poi的jar包 可以用来读取execlxls xlsx两种格式 里面含有代码可以直接运行

    java读取txt文件

    java 读取txt文件,文件中包含汉字和英文。并且含有乱码处理的方法。

    Java读取Excel表格中的日期

    通过上述方法,可以有效地解决Java读取Excel文件中日期格式的问题。这种方法不仅能够准确地识别日期格式,还能够妥善处理特殊情况,确保数据的一致性和准确性。在实际应用中,可以根据具体需求调整日期格式的解析...

    java 逐行读取txt文本如何解决中文乱码

    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8; 2.利用 InputStreamReader(new FileInputStream(fileUrl), ...

    找出代码文件中含有中文的程序

    标题中的“找出代码文件中含有中文的程序”是一个关于软件开发中的文本分析任务,目标是检测源代码文件中是否包含非英文字符,特别是中文字符,但要排除注释部分。这通常是为了确保代码的国际化和本地化,以及避免...

    利用JAVA对STDF文件进行分析_郑立钧

    通过读取文件中的字节数据,可以移动文件指针并获取数据,如FARRecord类中所示,其中cpuType和stdfVer分别通过读取字节并应用位掩码(AND 0xff)来获得。 主程序处理STDF文件的大致流程如下: 1. 打开STDF文件,...

    解决了DBF数据和表头乱码的javadbf.jar

    标题提到的"解决了DBF数据和表头乱码的javadbf.jar"是一个Java库,它专门用于处理DBF文件。原始的javadbf.jar可能存在读取DBF文件时编码转换不准确的问题,导致中文或者其他非ASCII字符显示为乱码。开发者通过识别并...

    java 逐行读取txt文本如何解决中文乱码.rar

    本篇将深入探讨如何使用Java有效地逐行读取含有中文字符的txt文本文件,并避免乱码问题。 首先,我们需要了解文本文件的编码方式。常见的编码格式有ASCII、GBK、UTF-8等。其中,GBK是针对中文字符的扩展ASCII编码,...

    读取txt文件,统计“java”字符串出现的次数

    读取txt文件,统计“java”字符串出现的次数

    Java中,当表单含有文件上传时,提交数据的如何读取(吐血版)

    在Java Web开发中,处理包含文件上传...通过以上步骤,我们可以有效地在Java中读取和处理通过`multipart/form-data`方式提交的表单数据,包括文件上传。理解这些概念和技术对于任何Java Web开发者来说都是至关重要的。

    java android zip解压缩(解决压缩中文乱码问题)

    通过引入这个特殊的"zip.jar"库,开发者可以在Android平台上更顺利地处理含有中文字符的ZIP文件,而无需担心乱码问题。这是一个轻量级且高效的方法,对于处理跨平台的压缩文件问题尤其有用。在实际开发中,我们应该...

    java 读取excel内容 创建excel 插入文字及图片

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、创建新的Excel工作簿,还是向其中插入文字和图片,都有成熟的库可以支持。本篇文章将深入探讨如何使用Java来实现这些功能。 首先,我们需要引入一个...

    java 生成excle文件

    在Java编程环境中,生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。在本场景中,我们使用了jxl.jar库来完成这个功能。jxl是一个开源的Java库,它允许开发者读取、写入和修改Excel文件(.xls...

    java创建和删除文件夹、文件.doc

    删除文件同样可以通过`java.io.File`类中的`delete()`方法实现: ```java public void delFile(String fileName) { try { File myFileName = new File(fileName); boolean result = myFileName.delete(); if ...

    Linux上执行带main方法的java文件

    这里需要注意的是命令中的`-jar`选项,它告诉Java运行时环境去读取该文件的`manifest.mf`文件,并从中找出`Main-Class`,然后执行该类的`main`方法。 #### 总结 通过上述步骤,可以在Linux环境下顺利地执行含有`...

    java实现根据关键字查找所在文件夹的文件

    对于每个文件,我们使用`java.nio.file.Files`类的`readAllLines()`方法读取文件内容,这会返回一个包含文件所有行的列表。 ```java List&lt;String&gt; lines = Files.readAllLines(file.toPath()); ``` 3. **搜索...

Global site tag (gtag.js) - Google Analytics