看下面读取数据的两个不同的代码片断 //片断1 RecordStore rs = ....; // an open record store
try { int lastID = rs.getNextRecordID(); byte[] data;
for( int i = 0; i < lastid; ++i ){ try { data = rs.getrecord( i ); .... // do something with the data } catch( invalidrecordidexception e ){ continue; } } } catch( exception e ){ // error }
//片断2 RecordStore rs = ....; // an open record store
try { RecordEnumeration enum = rs.enumerateRecords( null, null, false ); while( enum.hasNextElement() ){ byte[] data = enum.nextRecord(); .... // do something with the data } } catch( Exception e ){ // error }
上面的代码存在的问题是系统每次读取记录都要创建新的字节数组对象,这显然不够高效。其实我们可以对字节数组进行复用,并可以适当的调整它的大小。 RecordStore rs = ....; // an open record store
try { RecordEnumeration enum = rs.enumerateRecords( null, null, false ); byte[] data = new byte[100]; int len = 0;
while( enum.hasNextElement() ){ int id = enum.nextRecordId();