Я использую сообщение dataInputStream readFully для чтения байтового массива фиксированной длины как:
byte[] record = new byte[4660004];
in.readFully(record);
Проблема здесь в том, что иногда для чтения этих многочисленных байтов требуется более 5 секунд, что равно 20000записей.И я получаю эти данные на сокете.Клиент отправляет данные в виде байтового массива из 4660004 байтов.Есть ли способ получить эти данные быстрее, так как сейчас требуется около 5 минут на 1 миллион таких записей.
РЕДАКТИРОВАТЬ :: полный поток данных:
сначала я создаю поток:
static DataInputStream dIn = null;
dIn = new DataInputStream(connection.getInputStream());
msgType = dIn.readByte();
int msgIntLen = dIn.readInt();
processBatch(msgIntType, msgIntLen, dIn, connector);
.
.
private static void processBatch(int msgIntType, int msgIntLen, DataInputStream in,
Connector connector) throws IOException {
int recordIntLen = in.readInt();
byte[] record = new byte[msgIntLen - 4];
in.readFully(record);
}
где я должен включить буферизацию, если это поможет wudf?