| 
注册时间2011-3-21最后登录2025-4-11在线时间1191 小时阅读权限200积分9459帖子1256精华0UID1
 
   
 | 
| 在 Java 开发中,经常有网友遇到读取文本文件内容时,出现乱码的情况 
 大家可能也都知道是编码问题,但是如何正确加载文本内容呢?
 
 可以参考下面代码:
 当然,如果要读取的目标文本文件是以 utf-8 或者 unicode 等编码存储的,那么 TextUtils.loadStringFromFile 方法第二个参数就要指定相应的编码格式。复制代码/**
 * (#)ReadText.java    创建时间:Apr 7, 2011 11:14:16 PM<br />
 */
package org.iscripts.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
 * @author 林俊海(ialvin.cn) 广东·普宁·里湖
 */
public class TextUtil {
    
    /**
     * 从文件中读取文本内容, 读取时使用平台默认编码解码文件中的字节序列
     * @param file 目标文件
     * @return
     * @throws IOException
     */
    public static String loadStringFromFile(File file) throws IOException {
        return TextUtil.loadStringFromFile(file, System.getProperty("file.encoding"));
    }
    
    /**
     * 从文件中读取文本内容
     * @param file 目标文件
     * @param encoding 目标文件的文本编码格式
     * @return
     * @throws IOException
     */
    public static String loadStringFromFile(File file, String encoding) throws IOException {
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
            StringBuilder builder = new StringBuilder();
            char[] chars = new char[4096];
            int length = 0;
            while (0 < (length = reader.read(chars))) {
                builder.append(chars, 0, length);
            }
            return builder.toString();
        } finally {
            try {
                if (reader != null) reader.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
    
    public static void main(String[] args) throws IOException {
        
        File file = new File("D:\\我的文本.txt");
        System.out.println(loadStringFromFile(file, "GBK"));
    }
}
 附:《Java 写入文本文件》- http://www.iscripts.org/bbs/viewthread.php?tid=34
 | 
 |