У меня большой текстовый файл с контентом, написанным на хинди и немецком языке. Я хочу преобразовать каждый специальный символ в кодировку 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());
}
}
}