#c# #streamreader #line-breaks #textreader
#c# #streamreader #разрывы строк #textreader
Вопрос:
Пытаюсь использовать StreamReader или аналогичный из C # для чтения и записи ОЧЕНЬ ДЛИННЫХ строк без разрыва строки.
Насколько я понимаю, разрыв строки по-прежнему составляет всего 2 байта (CR LF) в длинном байтовом массиве, называемом файлом. По крайней мере, так я привык к этому в C / C …
Это то же самое для C # и .net или существует какая-то максимальная длина для строк без разрыва строки?
Комментарии:
1. Если вы хотите, чтобы он был кроссплатформенным, вам следует использовать Environment.NewLine, поскольку Unix использует только LF.
2. @jb. : C # не предназначен для кроссплатформенности … просто потому, что mono существует, это не значит, что все используют, должны писать кроссплатформенный код или даже знать об этом. если бы он упомянул кроссплатформенность в своем вопросе, то это был бы хороший комментарий.
3. C # и .NET были / определенно / разработаны как кроссплатформенные. Следует или не следует писать кроссплатформенный код, зависит от них.
4. @Dani Я упомянул об этом, потому что он говорит
linebreak is still just 2 bytes (CR LF)
. И это неверно, если вы используете unix. Я просто не хотел, чтобы он писал большую программу, а затем она странным образом завершалась сбоем, потому что он не ожидал, что будут только НЧ окончания.5. @MikeChristensen: Почему вы так думаете? Зачем Microsoft разрабатывать кроссплатформенный язык?
Ответ №1:
В .NET нет особых ограничений, но различные способы просмотра длинных строк могут вызвать проблемы, в основном связанные с производительностью. Попробуйте открыть свой файл с длинной строкой в блокноте с переносом слов, и он захлебнется. То же самое с многострочными текстовыми полями в .NET.
Но для чистого программного чтения очень длинных строк нет проблем.
Комментарии:
1. Отлично! Я только хочу использовать его как быстрый способ хранения большого количества простых данных, прежде чем они перейдут в формат SQL. Для отложенного / позднего синтаксического анализа, который есть. Это отличная новость! спасибо за быстрый ответ!
2. Ну, строки (и буферы) ограничены 2 ГБ, но обычно это не является практической проблемой.