Как читать данные в кодировке UTF-8 из файла - Java

Как читать данные в кодировке UTF-8 из файла - Java

Текстовый файл с данными в кодировке UTF-8

utf8 encoded file

P.S File is created by this article How to write UTF-8 encoded data into a file

Вот пример, демонстрирующий, как читать данные в кодировке UTF-8 из файла в Java

package com.example;

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 test {
    public static void main(String[] args){

    try {
        File fileDir = new File("c:\\temp\\test.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());
        }
    }
}

Результат

Website UTF-8
?? UTF-8
??????? UTF-8

Не беспокойтесь о символе «???», это потому, что моя консоль вывода не поддерживает данные UTF-8. Переменная «str» хранит точно такие же данные в кодировке «UTF-8», как показано в текстовом файле.