JTextArea
не поддерживает стилизованный текст. JTextPane
делает.
Официальное руководство должно быть хорошим началом: Как использовать панели редактора и текстовые панели (Учебные руководства Java ™> Создание графического интерфейса с JFC / Swing> Использование компонентов Swing)
Учитывая абсолютно случайное содержание файла и хороший криптографический хеш, вероятность, что будет два файла с тем же значением хэш-функции, достигает 50%, когда количество файлов - примерно 2 к (число битов в хеш-функции / 2). Таким образом, для хеша на 128 битов будет 50%-й шанс по крайней мере одной коллизии, когда количество файлов достигнет 2^64.
Ваше содержание файла решительно не случайно, но я понятия не имею, как сильно, который влияет на вероятность коллизии. Это называют нападением дня рождения, если Вы хотите погуглить для больше.
Это - вероятностная игра. Если количество изображений будет существенно меньше, чем 2^64, Вы, вероятно, в порядке. Если Вы все еще заинтересованы, использование комбинации SHA-1 плюс MD5 (как другой предложенный ответ) получает Вас к в общей сложности 288 высококачественным битам хеша, что означает, что у Вас будет 50%-й шанс коллизии, после того как существует 2^144 файлы. 2^144 могущественное большое количество. Могущественный большой. Можно было бы даже сказать огромный.
Необходимо использовать SHA-1 вместо MD5, потому что MD5 повреждается. Существуют пары различных файлов с тем же хешем MD5 (не теоретический; они на самом деле известны, и существуют алгоритмы для генерации еще большего количества пар). Для Вашего приложения это означает, что кто-то мог загрузить два различных изображения, которые будут иметь тот же хеш MD5 (или кто-то мог генерировать такую пару изображений и опубликовать их где-нибудь в Интернете, таким образом, что два из Ваших пользователей позже попытаются загрузить их с запутывающими результатами).
Это - хороший подход. Существует чрезвычайно маленькая возможность, что два различных изображения могли бы хешировать к тому же значению, но в действительности Ваш дата-центр имеет большую вероятность страдания прямого попадания астероидом.
Один протест состоит в том, что необходимо быть осторожными при удалении изображений. При удалении записи изображения, которая указывает на некоторый файл, и Вы удаляете файл также, то можно удалять файл, который имеет другую запись, указывающую на то же изображение (который принадлежит другому пользователю, скажите).
Кажется прекрасным мне, если Вы соглашаетесь с именами файлов с 32 символами.
Править: Я не использовал бы, это как основание (говорит), что центральная база данных ФБР террористических фотографий под арестом, так как достаточно мотивированный взломщик мог, вероятно, придумать изображение, которое имело тот же MD5 как существующий. Если бы это имело место затем, то Вы могли бы использовать SHA1 вместо этого, который несколько более безопасен.
Если у Вас есть два идентичных изображения, загруженные из различных мест скажем фотография запаса, то Вы могли закончить тем, что перезаписали 'оригинал'. Однако это означало бы, что Вы только храните одну копию, не два.
Так как это сказан, я не вижу больших проблем с выполнением его в способе, которым Вы описали.
Вы могли бы хотеть изучить технологическое использование сетей P2P для идентификации дубликатов файлов. Решение, включающее MD5, SHA-1 и длину файла, было бы довольно надежно (и вероятно излишество).
Это будет трудоемким. Почему Вы только не присваиваете им последовательные идентификаторы?