`
Fangrn
  • 浏览: 799219 次
  • 性别: 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读写excel包括utf8转码为可识别汉字gbk

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

    Java写的Properties读写类

    Java自带的Properties不好用,自己写了一个直接读写类,支持配置文件描述,支持对像值的描述,支持指定文件编码(默认UTF-8)

    Ini for Java

    Windows中读写INI的相关API又不支持“UTF-8 Bom”格式的文件。这个太坑了。所以INI文件,建议你就使用GB2312编码的。 2. IniEditor.java原本不支持Section后面写注释,你即使写了注释,用IniEditor一保存注释就给...

    借助Sigar API获取磁盘信息

    本工程用于演示借助Sigar API获取磁盘信息 本工程编码方式:UTF-8 本工程开发工具:MyEclipse

    解决python大批量读写.doc文件的问题

    大家都知道当我们利用java语言读写.doc文件时,无论是利用流的方式将.doc文件的内容输出到控制台(console),还是将其写到其他文件中,无论你采取何种编码格式(utf-8,gbk等)输出,你看到的内容99%都是乱码。...

    ganymed-ssh2-build210.jar java远程访问linux服务器操作、上传下载文件

    //字符编码默认是utf-8 private static String DEFAULTCHART="UTF-8"; protected static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(ScpClient.class); static private ScpClient ...

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics