Как изменить файл Fist 256kb без создания нового файла и копирования? - PullRequest
0 голосов
/ 23 августа 2011

Я загружаю файл Audio / Video / PDF с сервера amazon S3.То, что я делаю, в начале загрузки шифрует только первые 256 Кбайт для каждого файла.Недавно я добавил резюме функциональности.Я хочу дождаться полной загрузки файла.После завершения я зашифрую первые 256 КБ файла.

Я хочу зашифровать первые 256 КБ файла, не создавая новый файл для этого.Как будто я создаю новый, то после 256kb я должен скопировать другие байты в новый файл.Это займет время, так как размер файла может быть от 200 МБ до 500 МБ.

Какое решение лучше для этого?Я использую JDK1.6 Загрузка через поток ввода / вывода.

import java.io.InputStream;
import java.io.FileOutputStream;

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Возможно, вы захотите использовать RandomAccessFile . Считайте свои 250 КБ, зашифруйте в памяти, перезапишите в том же файле.

1 голос
/ 23 августа 2011

Другой вариант - создать свой собственный класс CustomInputStream, который расширяет InputStream. Когда вы читаете из своего customInputStream, сохраняйте количество прочитанных байтов, как только число прочитанных байтов достигнет 256, вы можете расшифровать их, а затем вы можете просто вызвать метод super.read ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...