java .lang.OutOfMemoryError, конвертировать текст в файле в кодировку UTF-8 - PullRequest
0 голосов
/ 15 апреля 2020

У меня большой текстовый файл с контентом, написанным на хинди и немецком языке. Я хочу преобразовать каждый специальный символ в кодировку UTF-8. (строка за строкой)

Я использовал этот код, но он выдает ошибку:

Исключение в потоке "main" java .lang.OutOfMemoryError: Java пространство кучи в java .util.Arrays.copyOf (Arrays. java: 3332) в java .lang.AbstractStringBuilder.ensureCapacityInternal (AbstractStringBuilder. java: 124) в java .lang.AbstractStringBuilder.append (AbstractString) . java: 566) в java .lang.StringBuilder.append (StringBuilder. java: 181) в ConvertUTF.main (ConvertUTF. java: 47)

Это код:


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
import java.io.FileWriter;
import java.io.InputStream;

public class ConvertUTF {

    public static void main(String[] args){

        try {

            InputStream is = null;
            is = new FileInputStream("file.txt");
            BufferedReader in = new BufferedReader(
               new InputStreamReader(is, "UTF8"));

            int str;


            char[] cbuf = new char[is.available()];
            int i=1;
            StringBuilder sb1 = new
                    StringBuilder("");
            while ((str = (in.read(cbuf,0,8))) != 0 && i<7) {
                sb1.append(cbuf);


            }

            System.out.print(sb1);

            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());
            }
        }


}

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

ошибка в имени нормализации: измените UTF8 на UTF-8

0 голосов
/ 15 апреля 2020

BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("file.txt"), "UTF-8"));

попробуйте UTF-8 вместо UTF8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...