Scripts 学盟

标题: Java 读取文本文件内容 [打印本页]

作者: Alvin    时间: 2011-4-7 23:47:12     标题: Java 读取文本文件内容

在 Java 开发中,经常有网友遇到读取文本文件内容时,出现乱码的情况

大家可能也都知道是编码问题,但是如何正确加载文本内容呢?

可以参考下面代码:
  1. /**
  2. * (#)ReadText.java    创建时间:Apr 7, 2011 11:14:16 PM<br />
  3. */
  4. package org.iscripts.test;

  5. import java.io.BufferedReader;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;

  10. /**
  11. * @author 林俊海(ialvin.cn) 广东·普宁·里湖
  12. */
  13. public class TextUtil {
  14.    
  15.     /**
  16.      * 从文件中读取文本内容, 读取时使用平台默认编码解码文件中的字节序列
  17.      * @param file 目标文件
  18.      * @return
  19.      * @throws IOException
  20.      */
  21.     public static String loadStringFromFile(File file) throws IOException {
  22.         return TextUtil.loadStringFromFile(file, System.getProperty("file.encoding"));
  23.     }
  24.    
  25.     /**
  26.      * 从文件中读取文本内容
  27.      * @param file 目标文件
  28.      * @param encoding 目标文件的文本编码格式
  29.      * @return
  30.      * @throws IOException
  31.      */
  32.     public static String loadStringFromFile(File file, String encoding) throws IOException {
  33.         BufferedReader reader = null;
  34.         try {
  35.             reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
  36.             StringBuilder builder = new StringBuilder();
  37.             char[] chars = new char[4096];
  38.             int length = 0;
  39.             while (0 < (length = reader.read(chars))) {
  40.                 builder.append(chars, 0, length);
  41.             }
  42.             return builder.toString();
  43.         } finally {
  44.             try {
  45.                 if (reader != null) reader.close();
  46.             } catch (IOException e) {
  47.                 throw new RuntimeException(e);
  48.             }
  49.         }
  50.     }
  51.    
  52.     public static void main(String[] args) throws IOException {
  53.         
  54.         File file = new File("D:\\我的文本.txt");
  55.         System.out.println(loadStringFromFile(file, "GBK"));

  56.     }
  57. }
复制代码
当然,如果要读取的目标文本文件是以 utf-8 或者 unicode 等编码存储的,那么 TextUtils.loadStringFromFile 方法第二个参数就要指定相应的编码格式。

附:《Java 写入文本文件》- http://www.iscripts.org/bbs/viewthread.php?tid=34
作者: 那个谁    时间: 2011-9-13 08:06:08

木有人顶下!!!!




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2