¿Cómo arreglar java.lang.OutOfMemoryError: error de espacio de almacenamiento dinámico de Java? [duplicar]

Esta pregunta ya tiene respuestas aquí :
Respuesta 1

Base64 convierte cada 3 bytes en 4 letras. Eso significa que puede leer sus datos en fragmentos y descodificarlos de la misma manera que descodificaría todo el archivo.

Prueba esto:

       File file = new File(filePath);
       FileInputStream fileInputStreamReader = new FileInputStream(file);
       StringBuilder sb = new StringBuilder();
       Base64.Encoder encoder = java.util.Base64.getEncoder();
       int bufferSize = 3 * 1024; //3 mb is the size of a chunk
       byte[] bytes = new byte[bufferSize]; 
       int readSize = 0;

       while ((readSize = fileInputStreamReader.read(bytes)) == bufferSize) {
            sb.append(encoder.encodeToString(bytes));
       }

       if (readSize > 0) {
            bytes = Arrays.copyOf(bytes, readSize);
            sb.append(encoder.encodeToString(bytes) );
       }

       String encodedBase64  = sb.toString();
Respuesta: 2

¿Cuál es la mejor opción para leer CSV? Sé que hay una manera de usar la API super-csv, la API java-csv. Pero mi jefe me pidió una API que solo es proporcionada por la organización Apache. Lata ...

Recenlty Tengo un gran problema con los caracteres polacos en la respuesta JSON del servidor. Tengo una simple solicitud de Ajax para esto: jQuery.ajax ("/ GetSimpleRuleList", {type: "GET", ...

Estoy estudiando para el examen OCP estas clases de E / S: subclases de OutputStream: FileOutputStream BufferedOutputStream DataOutputStream PrintStream (veo que sus métodos write () no arrojan excepciones) Writer ...

¿Cómo actualizo los datos en un modelo Spring WebFlow y los devuelvo a la misma vista? Tengo un proyecto en el que estoy trabajando y si el usuario elige un elemento de un cuadro de selección, tengo que volver al servidor ...