1
resposta

Arquivos txt não UTF-8

Olá, estou com um problema.

Gostaria de ler um arquivo de texto com o Java, mas não estou conseguindo.

O meu código é o seguinte:

    System.out.println("Escolha o diretório:");
    Scanner scanner = new Scanner(System.in);
    String caminho = scanner.nextLine();
    Path path = Paths.get(caminho);
    scanner.close();


    List<String> lines = Files.lines(path).collect(Collectors.toList());

    System.out.println(lines.get(0));

Ele lê a maioria dos arquivos, porém em alguns ele dá esse erro:

Exception in thread "main" java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1

Pesquisei mais a fundo, e descobri que isso tem a ver com o "Encoding" do txt que estou tentando ler, que não está em UTF-8.

Existe alguma forma de ler arquivos que possuem essa situação?

1 resposta

Voce pode transformar o arquivo em UTF-8 primeiro usando o BufferedReader.

Segue exemplo abaixo:

 BufferedReader in = new BufferedReader(
            new InputStreamReader(
                       new FileInputStream(fileDir), "UTF8"));

         String str;