Làm thế nào để đọc một tập tin TXT có encoding là UTF-8 trong Java?(How to read UTF-8 encoding data from a TXT file in Java?)






Như trong bài viết trước tôi có hướng dẫn đọc một tập tin TXT bằng Java, nhưng cách trong bài viết này không hỗ trợ đọc các dạng tập tin có encoding là UTF-8. Nên trong bài viết này tôi sẽ hướng dẫn một cách đọc các tập tin TXT có encoding là UTF-8.





Để nắm bắt rõ hơn vấn để tôi sẽ đưa ra ví dụ mô tả, ta có một tập tin TXT với nội dung sau:

Welcome you to my site VN-Lives.
Chào mừng các bạn tới my site VN-Lives.

Sau khi đọc tập tin này trong Java theo như bài hướng dẫn hướng dẫn đọc một tập tin TXT bằng Java. Thì kết quả ta nhận được sẽ là.

Welcome you to my site VN-Lives.
Chào m?ng các b?n t?i my site VN-Lives.

Tùy theo trình biên dịch thì nó thể là dấu ô vuông thay vì dấu chấm hỏi.

Bây giờ ta sẽ tìm hiểu cách đọc tập tin TXT UTF-8 trong Java. Nhưng đầu tiên ta cần chuẩn bị một tập tin TXT có encoding là UTF-8.


Kế tiếp bạn tạo chương trình đọc TXT file như sau:

/**
 * @(#)JavaReadUTF8File.java
 *
 * JavaReadUTF8File application
 *
 * @author developer.bnson@gmail.com
 * @version 1.00 2014/3/17
 */

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

public class JavaReadUTF8File {
   
    public static void main(String[] args) {
        try
        {
            File fileDir = new File("D:\\Z-Test\\VNLIVES_NET\\UTF-8 File.txt");
            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));
            String str;

            while ((str = in.readLine()) != null) {
                System.out.println(str);
            }

            in.close();
        } catch (UnsupportedEncodingException e) {
            System.out.println(e.getMessage());
           
        } catch (IOException e) {
            System.out.println(e.getMessage());
           
        } catch (Exception e) {
            System.out.println(e.getMessage());
           
        } 

    }
}

Kết quả sau khi thực thi sẽ là:

.Welcome you to my site VN-Lives.
Chào mừng các bạn tới my site VN-Lives.

Ở đây bạn chú ý trong khi in ra màn hình console trong NetBeans trước chữ Welcome có thếm một dấu ".", dấu này thực không phải là dấu chấm mà nó là một ký tự để nhận định tập tin TXT này có encoding là UTF-8.



















No comments:

Post a Comment