2013-12-14 4 views
0

В целях тестирования я хотел бы получить файл с заданным размером, заполненным случайными данными.Создать файл с заданным размером

Поэтому у меня есть два вопроса:

  • Как эффективно генерировать файл заданного размера в Android?
  • Как эффективно заполнять файл случайными данными?
    • Что является лучшим источником (идеально совместимым с v7) случайных байтов?
    • Это необходимо, поскольку файл будет содержать данные, ранее записанные в выделенном пространстве жесткого диска?
+0

Определить «случайный», какой дистрибутив? – amit

+0

«Это необходимо, потому что файл будет содержать данные, ранее записанные в выделенном пространстве жесткого диска?» и мы все знаем, что нет никакого риска, что такое пространство ранее содержало некоторый HTML-кешированный код или другой тип «неслучайных» данных. Что делать, если устройство является новым, и большая часть диска не используется с момента форматирования? – SJuan76

+0

Если вы пытаетесь очистить предыдущие данные, просто установите его на ноль. Не обязательно быть случайным. –

ответ

1

Вы просто создать файл и заполнить его размера вы хотите. Вы не задаете размер. Если вы создадите файл и поместите в него 1 килобайт, файл будет 1 килобайт (на самом деле немного больше).

Так что просто создайте файл и используйте любую процедуру записи файла для вывода байтов, которую вы можете создать с помощью (byte)(random()*510 - 255) в цикле для любого большого количества байтов, которым вы хотите, чтобы файл был. Поскольку это java, и вы можете использовать печать для вывода в файл, вы должны использовать (char)(Math.random()*510 - 255), иначе он будет печатать строку «65» вместо «A»

+0

Можете ли вы, пожалуйста, более подробно об эффективности? Какой размер блоков для записи должен использоваться? Есть ли какая-либо (андроидная) информация, связанная с окружающей средой? Должны ли мы использовать внутреннее/внешнее/кеш/... хранилище? Использует 'Math.random()' хороший при создании файла в десятки мегабайт? Все, что связано с '/ dev/(u) random'? В любом случае, спасибо за ваши усилия. –

+0

«Определить« случайное », какое распределение?» -> «не очень важно для меня» –

+1

преждевременная оптимизация - корень всего зла –

Смежные вопросы