convertir byte[] a String Java

bytes

Trabajando con mysql y java me ha salido que el tipo de dato es byte, y me he quedado bien wtf!, ya que según yo era String, pero bueno he encontrado la solución rapidamente.

Para transformar un byte[] a String esta bien sencillo solo haz lo siguiente:
[cc lang=»java»]
//Tu variable tipo byte[]
byte[] misBytes = new byte[10];
//.. asignar valores a misBytes
//convertir a string
String miString = new String(misBytes);
[/cc]

como sucedio:

  1. Cree una vista en mysql la cual contenia un campo concatenado
    [cc lang=»sql»]create view ‘vista’ as (select concat(tabla.campo1, tabla.campo2) as campo3 from tabla); [/cc]
  2. cree la consulta desde desde java
    [cc lang=»java»] String sql = «Select campo3 from vista»; [/cc]
  3. la consulta me regreso un ResultSet y lo recorri
    [cc lang=»java»] ResultSet rs = statement.executeQuery(sql);
    while (rs.next()) {
    String campo3 = rs.getString(«campo3»); //segun yo era string
    } [/cc]
  4. Me marco una excepcion de casting de datos y me quede wtf que coño es B
    [cc lang=»java»] B cannot be cast to java.lang.String [/cc]
  5. Para estar seguro que significaba la B(desconocia su significado) hice lo siguiente: [cc lang=»java»]Object obj = rs.getObject(«campo3»);
    System.out.Println(obj.getClass.getCannonicalName); //asi me da el nombre de la clase[/cc]
  6. y el resultado fue byte[], luego investigue por que byte[] segun decia que el tipo de dato concat es VARBINARY entonces para convertir un arreglo de bytes a String haces lo siguiente:
    [cc lang=»java»]
    byte[] obj = rs.getBytes(«campo3);
    /*donde obj es nuestro arreglo de byte[] la clase String tiene un constructor que recibe de parametro un arreglo de bytes y hace la conversion.
    si recorres el arreglo de bytes veras que son puros numeros, esos numeros son su codigo ascii.
    */
    [/cc][cc lang=»java»]
    byte[] myBytes = rs.getBytes(«campo3);
    String campo3 = new String(myBytes);
    [/cc]
  7. Listo ya convertiste byte[] a String 😛

espero que a alguien le sea de utilidadd como me lo fue a mi 🙂

Fuentes a las que acudi:
mysql
convert by to String

1 comment
  1. Fede
    Fede
    diciembre 1, 2012 at 11:09 am

    maldito google -.-

    Reply
Responder a FedeCancel

Your email address will not be published. Required fields are marked *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.