Запись строки base64 в файл без возврата каретки - PullRequest
1 голос
/ 25 января 2010

Будут ли возникать проблемы, если я запишу строку base64 в файл, не разбивая ее с помощью возврата каретки?

Есть ли случаи, когда я столкнусь с трудностями при написании и чтении большой строки за один раз?

Сейчас размер строк, которые я храню, составляет около 100 символов, но они могут попасть в диапазон более 10000 - это будет проблемой?

Заранее спасибо.

Ответы [ 4 ]

5 голосов
/ 25 января 2010

Вы можете иметь файлы настолько большого размера, насколько позволяет ваша файловая система, без разрывов строк.

С другой стороны, их чтение будет затруднено для больших файлов.Я рекомендую StreamReader или, по крайней мере, буфер в виде байтового массива, вместо того, чтобы пытаться загрузить его в виде строки.

2 голосов
/ 26 января 2010

Это полностью зависит от приложения, которое читает файл. Я, конечно, не стал бы делать это, если бы это было нативное приложение C / C ++, которое читает его. У приложения .NET или Java не должно быть никаких проблем, если не считать больше памяти. MIME (RFC 2045) требует не более 76 символов в строке и «=» для заполнения. Я бы посоветовал вам использовать это.

1 голос
/ 26 января 2010

Чтобы ответить на ваш прямой вопрос, да, есть размер, который вы начнете замечать проблемы производительности чтения / записи, если вы используете одну большую строку;однако это зависит от многих вещей, включая дисковый ввод-вывод, загрузку процессора и даже свободную память.На полусовременной машине я бы сказал, что у вас действительно не будет проблем, если ваши файлы меньше 2-3 МБ.Вы получаете намного лучшую производительность и позволяете отображать индикатор выполнения и т. д.

1 голос
/ 26 января 2010

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

...