`
Fangrn
  • 浏览: 818104 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java指定编码读写文件(UTF-8)

    博客分类:
  • j2ee
阅读更多

有时我们需要程序动态生成jsp文件,采取系统默认的编码操作的文件出来的结果往往不是我们想要的,原因是中文显示总是是乱码。

 

 

读取

     import  java.io.BufferedReader; 
    
import  java.io.FileInputStream; 
    
import  java.io.InputStreamReader; 

    String FileContent 
=   "" //  文件很长的话建议使用StringBuffer
     try  {
        FileInputStream fis 
=   new  FileInputStream( " d:\\input.txt " );
        InputStreamReader isr 
=   new  InputStreamReader(fis,  " UTF-8 " );
        BufferedReader br 
=   new  BufferedReader(isr);
        String line 
=   null ;
        
while  ((line  =  br.readLine())  !=   null ) {
            FileContent 
+=  line;
            FileContent 
+=   "\r\n " //  补上换行符
        }
    } 
catch  (Exception e) {
        e.printStackTrace();
    }

 

写入

     import  java.io.FileOutputStream;
    
import  java.io.OutputStreamWriter;

    String FileContent 
=   " 文件内容 " ;
    
try  {
        FileOutputStream fos 
=   new  FileOutputStream( " d:\\output.txt " );
        OutputStreamWriter osw 
=   new  OutputStreamWriter(fos,  " UTF-8 " );
        osw.write(FileContent);
        osw.flush();
    } 
catch  (Exception e) {
        e.printStackTrace();
    }

       读写文件是最常用的操作之一,每次将相应的代码片段复制过来不仅麻烦,还会影响整体的美观。为此我单独写了一个文件操作的类,需要时先把这个类的代码粘过去,再调用就方便多了。 

import  java.io.BufferedReader;
import  java.io.FileInputStream;
import  java.io.FileOutputStream;
import  java.io.InputStreamReader;
import  java.io.OutputStreamWriter;

public   class  FileManager {
    
public   static  String read(String fileName, String encoding) {
        StringBuffer fileContent 
=   new  StringBuffer();
        
try  {
            FileInputStream fis 
=   new  FileInputStream(fileName);
            InputStreamReader isr 
=   new  InputStreamReader(fis, encoding);
            BufferedReader br 
=   new  BufferedReader(isr);
            String line 
=   null ;
            
while  ((line  =  br.readLine())  !=   null ) {
                fileContent.append(line);
                fileContent.append(System.getProperty(
" line.separator " ));
            }
        } 
catch  (Exception e) {
            e.printStackTrace();
        }
        
return  fileContent.toString();
    }

    
public   static   void  write(String fileContent, String fileName, String encoding) {
        
try  {
            FileOutputStream fos 
=   new  FileOutputStream(fileName);
            OutputStreamWriter osw 
=   new  OutputStreamWriter(fos, encoding);
            osw.write(fileContent);
            osw.flush();
        } 
catch  (Exception e) {
            e.printStackTrace();
        }
    }
}
 
调用示例:
写入 FileManager.write("Hello, World!", "D:\\test.txt", "UTF-8");
读取 System.out.println(FileManager.read("D:\\test.txt", "UTF-8"));
分享到:
评论

相关推荐

    java 编码 UTF-8、ISO-8859-1、GBK

    1. **数据库连接方式**:数据库的连接参数应指定正确的字符编码,如使用 `useUnicode=true&characterEncoding=UTF-8` 来确保数据传输时的编码一致性。 2. **网页编码**:网页的HTML文件应声明正确的字符编码,例如...

    java jsp解决utf-8乱码.zip

    在Java JSP开发中,遇到UTF-8编码导致的乱码问题是一个常见的困扰。这个问题主要涉及到字符编码的统一和正确处理。UTF-8是一种广泛使用的Unicode字符编码方案,它可以支持几乎所有的字符集,包括中文、日文和韩文。...

    快速转码(UTF-8转ASCII)

    如果要转换整个文件的编码,可以使用`java.io`或`java.nio.file`包中的类来读取UTF-8编码的文件,转换后写入ASCII编码的文件。 总结来说,"快速转码(UTF-8转ASCII)"是一个常见的编程需求,尤其在Java Web开发中。...

    java读写Xml文件(UTF-8) 【一】

    本文将详细介绍如何使用Java进行XML文件的读取和写入,特别是在处理UTF-8编码时需要注意的事项。 首先,要处理XML文件,我们需要引入Java的标准库`javax.xml.parsers`和`org.w3c.dom`。这些库提供了DOM(Document ...

    xml.rar_UTF XML_UTF-8编码_utf_utf-8_xml utf-8

    在"xml.rar_UTF XML_UTF-8编码_utf_utf-8_xml utf-8"这个压缩包中,我们主要探讨的是与XML文档相关的编码问题,特别是UTF-8编码。 UTF-8是一种广泛使用的Unicode字符编码方案。它能够表示Unicode标准中的所有字符,...

    批量将Java源代码文件的编码从GBK转为UTF-8

    标题提到的“批量将Java源代码文件的编码从GBK转为UTF-8”是一个常见的需求,因为GBK编码是中国大陆广泛使用的编码方式,但它并不兼容Unicode,而UTF-8编码则是一种更通用的Unicode实现,能兼容多种语言字符。...

    GBK文件夹转化UTF-8 支持文件名

    这个程序需要遍历指定的GBK编码文件夹,读取每个文件的内容并将其转换为UTF-8编码,同时,对于文件名也要进行相应的编码转换。 在Java中,我们可以使用`java.nio.file`包中的`Files`类和`StandardCharsets`类来实现...

    【源代码】明解Java-UTF-8.rar

    3. 文件操作:`FileReader`和`FileWriter`默认使用平台默认编码,但在跨平台项目中,应显式指定UTF-8编码,如`new FileWriter(file, "UTF-8")`。 4. 网络通信:在发送HTTP请求或处理响应时,HTTP头中的`Content-...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    Delphi中UTF-8,Unicode格式转换

    delphi7调用delphi2009生成的dll文件会出现乱码问题。是unicode的原因 终于找到了UTF-8、Unicode格式转换函数

    gbk转utf-8批量转换

    2. **编写转换脚本**:对于熟悉编程的人来说,可以编写Python、Java、Perl等语言的脚本来批量读取GBK编码的文件,然后用UTF-8重新写入。Python的`codecs`库提供了方便的读写功能,如`codecs.open()`。 3. **使用...

    Python-convert2utf将目录下的全部源文件转成UTF8编码

    标题"Python-convert2utf将目录下的全部源文件转成UTF8编码"指的是使用Python编写的一个脚本或工具,该工具能够遍历指定目录,检测并转换其中的GB、GBK以及其他非UTF-8编码的文本文件和源代码文件,统一转换为UTF-8...

    utf8与string的相互转换

    相反,当你向服务器发送请求或者保存文件时,可能需要将字符串编码为UTF-8格式。 了解这些基本概念后,我们来看提供的压缩包文件"UTF8"。这个文件可能包含一些示例代码或教程,演示了如何在具体编程环境中进行UTF-8...

    Carmela提供基于PHP,PHP扩展,JAVA,C++等语言的一套处理4四节UTF-8解决方案

    3. **文件读写**:在读取或写入包含UTF-8编码的文本文件时,需要正确设置文件编码,避免乱码问题。 4. **国际化与本地化**:如果Carmela涉及多语言支持,可能会用到PHP的`gettext`或`intl`扩展,以实现动态切换语言...

    Struts中文预处理UTF-8

    综上所述,处理Struts中的中文预处理成UTF-8编码是一个涉及多个层面的过程,包括请求处理器、响应设置、配置文件调整以及客户端设置。通过细致的配置和编码设置,我们可以确保中文字符在Struts应用中得到准确无误的...

    java读写文件避免中文乱码.docx

    这样,在读取文件时,Java 就会使用 UTF-8 编码来解析文件内容,从而避免中文乱码。 写入文件避免中文乱码 在写入文件时,也需要使用正确的编码方式来保存文件内容。Java 提供了多种方式来写入文件,例如使用 `...

    深入UTF8字符编码

    在Java中,字符串是以UTF-16编码存储的,但读写文件或网络通信时,通常会转换成UTF-8。`java.nio.charset.Charset`类提供了对各种字符编码的支持,包括UTF-8。使用`new String(byte[], "UTF-8")`或`String.getBytes...

    java读写csv文件,中文乱码问题

    如果CSV文件是以UTF-8编码的,但Java程序在读取时假设它是GBK或其他编码,就会导致乱码。反之亦然。 解决Java读取CSV文件中文乱码问题的步骤如下: 1. **指定字符编码**:在使用`BufferedReader`或者`FileReader`...

    android POST数据遇到的UTF-8编码(乱码)问题解决办法

    1. **使用统一的编码标准**:在整个项目中,确保所有文件、数据库、网络通信都采用统一的编码,如UTF-8,以避免编码不一致带来的问题。 2. **指定字符编码**:在读写文件、数据库操作、网络通信等涉及字符串处理的...

Global site tag (gtag.js) - Google Analytics