2012-09-28 66 views

回答

0

我不認爲有任何內置的方式做到這一點而不檢索列和直接檢查的大小。

當最初寫入值時,您需要將每列的大小存儲在的另一個列中。

你可以在同一行中使用一個類似命名列,讓你用同樣數量的行結束,你現在有,但在每兩倍多列)

row : col1 col1size col2 col2size 
     <data> <size>  <data> <size> 

或相同在另一行中命名的列,所以最終的結果是行數的兩倍,但是與現在相同的列數)。

row1  : col1 col2 
       <data> <data> 

row1sizes : col1 col2 
       <size> <size> 

更新解決意見:要在寫入前找到列的大小,客戶端可以序列化對象的字節數組,然後檢查數組的大小:

String s = "foo"; 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    ObjectOutputStream oos = new ObjectOutputStream(baos); 
    oos.writeObject(s); 
    System.out.println("Size="+baos.toByteArray().length); 
+0

感謝您的迴應。但是我的列值是一個java序列化對象。我如何獲得它的大小? –

+0

查看我的更新回答 – DNA