设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 3916|回复: 1
打印 上一主题 下一主题

Java 读取文本文件内容 [复制链接]

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
Alvin 实名认证  发表于 2011-4-7 23:47:12 |只看该作者 |倒序浏览
在 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
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0

Rank: 8Rank: 8

2#
那个谁 发表于 2011-9-13 08:06:08 |只看该作者
木有人顶下!!!!

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-4-27 20:05 , Processed in 1.095064 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部