java给对象付值,我new 了一个java的对象,里面有十一个字段,有String ,Char,int ,Short,等几种类型,还有一个byte[] buf=new byte[1024*500];buf里面是二进制数据,我怎么把这个二进制数据的值付给这个对象的属性呢,请各位大侠帮帮我,我没有这么做的经验,最好给我一个实例,谢谢,buf里面的数据是从数据库里读取出来的,谢谢各位了

解决方案 »

  1.   

    其实,我是在调动态库,里面的方法,有两个参数,一个是从数据库里取出是二进制参数,也就是buf的值,另外一个是传一个实体对象,要把buf里的值付给对象,再把对象存入内存
      

  2.   

    其实我很好奇你的类有个这样的属性是做什么用的。小弟我的经验,一般情况下,存到数据库里面的二进制数据都是图片、音频、word文档等文件,不会作为类的属性存在数据库里面,并且是以blob的方式存的,附上一段读二进制数据的代码:
    /**
    *从数据库读取Blob数据,并且保存在文件系统中
    */
    public void readBlob(String fileName)throws Exception
    {conn.setAutoCommit(false);
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("SELECT blobvalue FROM blobtable");
    BLOB blob = null;
    while (rset.next()) {
    blob = ((OracleResultSet) rset).getBLOB(1);
    System.out.println(blob.length());
    }FileOutputStream file_out = new FileOutputStream(new File(fileName));
    InputStream blob_in = blob.getBinaryStream();
    int temp;
    while((temp=blob_in.read())!=-1)
    file_out.write(temp);//读取数据,写入文件系统file_out.close();
    blob_in.close();
    conn.commit();
    }        

    如果你只是byte的话是不是直接rs.getByte()就可以了?我没度过byte的数据,飘过……
      

  3.   

    如果是一个对象实例。那么实现这个对象的二进制序列化方法和反序列化方法。将对象实例序列化成2进制数组。具体技术请GOOGLE。