8192 байта при создании файла - PullRequest
7 голосов
/ 10 июля 2009

В моем коде Java есть функция, которая получает файл от клиента в запросе http и преобразует его в файл. У меня есть эта строка там:

byte[] buffer = new byte[8192];

что означает здесь 8192 байта (8 кб)?

Это один из ответов, которые я получил , и хочу убедиться, что я понимаю этот код.

Ответы [ 4 ]

11 голосов
/ 11 июля 2009

То, что он использует буфер для чтения и записи блоков по 8 КБ одновременно. Это число довольно произвольно, но по соображениям производительности имеет смысл использовать кратное 512 байт при записи файла и предпочтительно кратное размеру кластера дисков. 8 КБ - это разумный размер буфера для большинства целей.

2 голосов
/ 11 июля 2009

Это размер массива байтов, означающий, что в вашем буфере одновременно будет храниться 8192 байта.

1 голос
/ 21 сентября 2011

8192 - максимальный размер отправки пакета по сети. буфер символов [8192]; / * отдельные пакеты обычно не превышают 8192 байта * / 512 байт слишком мало.

1 голос
/ 11 июля 2009

Если бы мне пришлось угадывать, это количество места, которое вы используете для чтения в файле. Без остальной части кода я не могу сказать, пытается ли он все это прочитать и втиснуть в 8 Кб или он читает по 8 Кб за раз, а затем выгружает его в файл.

...