0
我正在嘗試讀取二進制文件(.dat)並將所有這些東西保存在二維數組中。行數定義爲二進制文件中的行數,列數定義爲9.因此,我希望能夠在二進制文件的行中檢測-1,並填充二維數組跳過這些值。我目前正在使用下面的代碼,但它只會刪除一行,即使二進制文件中有多行負面的行。將二進制數據插入到二維數組中
RandomAccessFile Archivocopiadora = new RandomAccessFile("Archivos/CopiadorasAgregadas.dat", "rw");
cantRegistros = Archivocopiadora.length()/tamRegistro;
matrizcopiadorascargadas = new String[(int)cantRegistros][9];
contadorespaciosvacios = 0;
int registroenceros = 0;
String lecturacopiadoraa = "";
for(int registro = 0; registro < cantRegistros; registro++) {
Archivocopiadora.seek(registro * tamRegistro + 88);
int prueba = Archivocopiadora.readInt();
if (prueba == -1) {
contadorespaciosvacios++;
stdOut.println(contadorespaciosvacios);
List<String[]> l = new ArrayList<String[]>(Arrays.asList(matrizcopiadorascargadas));
l.remove(registro);
array2 = l.toArray(new String[l.size()][9]);
} else {
Archivocopiadora.seek(registro * tamRegistro);
for (int ex = 0; ex < 40; ex++)
lecturacopiadoraa = lecturacopiadoraa + Archivocopiadora.readChar();
lecturacopiadoraa.trim();
matrizcopiadorascargadas[registro][0] = lecturacopiadoraa;
matrizcopiadorascargadas[registro][1] = Double.toString(Archivocopiadora.readDouble());
matrizcopiadorascargadas[registro][2] = Integer.toString(Archivocopiadora.readInt());
matrizcopiadorascargadas[registro][3] = Integer.toString(Archivocopiadora.readInt());
matrizcopiadorascargadas[registro][4] = Integer.toString(Archivocopiadora.readInt());
matrizcopiadorascargadas[registro][5] = Double.toString(Archivocopiadora.readDouble());
matrizcopiadorascargadas[registro][6] = Double.toString(Archivocopiadora.readDouble());
matrizcopiadorascargadas[registro][7] = Double.toString(Archivocopiadora.readDouble());
matrizcopiadorascargadas[registro][8] = Double.toString(Archivocopiadora.readDouble());
lecturacopiadoraa = "";
}
}