Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
Convertir InputStream a cadena base64

Hay una forma de convertir un InputStream en un String y codificarlo en base64, ¿verdad?

En mi función, obtengo el parámetro InputStream y necesito insertarlo en el campo BLOB en mi tabla de base de datos Oracle.

¿Hay una manera de hacer eso?

(Mi objeto de base de datos contiene un campo de cadena para guardar la imagen, pero no encuentro ninguna forma de convertir InputStream a cadena en formato base 64).

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puedes probar algo como esto usando la API Base64.

 InputStream finput = new FileInputStream(file); byte[] imageBytes = new byte[(int)file.length()]; finput.read(imageBytes, 0, imageBytes.length); finput.close(); String imageStr = Base64.encodeBase64String(imageBytes);

Utilizar este:

http://commons.apache.org/proper/commons-codec/archives/1.9/apidocs/org/apache/commons/codec/binary/Base64.html

about 4 years ago · Santiago Trujillo Denunciar

0

Hay una buena manera de hacer esto usando IOUtils para convertir InputStream en una Byte Array ...

algo como

 InputStream is; byte[] bytes = IOUtils.toByteArray(is);

Aquí puede usar Base64 para convertir Byte Array a String .

Código de muestra

 String encoded = Base64.getEncoder().encodeToString(bytes);

Ahora puedes usar tu String .

about 4 years ago · Santiago Trujillo Denunciar

0

La forma más sencilla sería usar IOUtils de apache-commons para hacer eso:

 String result= IOUtils.toString(inputStream, ENCODING);

De la documentación:

toString(byte[] entrada, codificación de cadena) Obtiene el contenido de un byte[] como una cadena usando la codificación de caracteres especificada.

Después de eso, para codificar/decodificar en Base64:

 // Encode String resultBase64Encoded = Base64.getEncoder().encodeToString(result.getBytes("utf-8")); // Decode byte[] asBytes = Base64.getDecoder().decode(resultBase64Encoded); String resultAsStringAgain= String(asBytes, "utf-8")

Nota: supongo que usa JDK 8 para la parte de codificación/descodificación.

Aparentemente, el OP solo quiere persistir un InputStream en la base de datos. Puedes hacerlo directamente usando JDBC:

 InputStream inputStream = ......; String sql = "INSERT INTO TABLE_NAME(COLUMN_NAME) values (?)"; PreparedStatement statement = connection.prepareStatement(sql); statement.setBlob(1, inputStream); statement.executeUpdate();
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda