Как читать огромные данные в сокете, а также записывать в сокет канал - PullRequest
0 голосов
/ 19 мая 2009

Как читать очень большие данные, используя DataInputStream сокета Если данные в формате String и имеют длину более 1 000 000 символов.

Кроме того, как записать эти большие данные, используя SocketChannel в Java?

1 Ответ

1 голос
/ 20 мая 2009

Проблема в том, что ваши данные поступают кусками. Либо размер пакета ограничивает это, либо, возможно, DataInputStream имеет внутренний буфер только 40 КБ. Я не знаю, но это не имеет значения. В любом случае, все 1000000 байтов не будут получены сразу. Таким образом, вы должны переписать вашу программу, чтобы ожидать этого. Вам нужно прочитать полученные меньшие порции и сохранить их в другой байтовой переменной [1000000] (отслеживая, где находится ваш последний индекс байтов). Продолжайте цикл, пока вы не закончили читать сокет. Затем вы можете работать со своей внутренней переменной.

...