<b>info.txt</b> <br/> <pre><code>Something string . Something string ! Something string . 123 ?</code></pre> <br/> <br/> В данный момент я пытаюсь реализовать следующий код: <br/> <pre><code class="cs">using System; using System.IO; namespace Test { class Test { static void Main() { string[] info = File.ReadAllLines("info.txt"); string resinf = string.Empty; foreach (string str in info) resinf += str; File.WriteAllText("new.txt", resinf); } } }</code></pre> <br/> <br/> Однако, в результате работы кода я получаю файл <b>new.txt</b> в следующем виде: <br/> <pre><code>Something string .Something string !Something string . 123 ?</code></pre> <br/> <br/> Как можно изменить код, чтобы вывод в файле соответствовал исходному формату?
Вы правы, при конкатенации строк в вашем коде потерялись переносы строк, поскольку вы не добавляете их в результирующую строку. Для того чтобы сохранить оригинальное форматирование, вы можете использовать `string.Join` с указанием переноса строки между строками. Вот исправленный код: ```csharp using System; using System.IO; namespace Test { class Test { static void Main() { // Читаем все строки из файла string[] info = File.ReadAllLines("info.txt"); // Объединяем строки, добавляя переносы строк между ними string resinf = string.Join(Environment.NewLine, info); // Записываем результат в новый файл File.WriteAllText("new.txt", resinf); } } } ``` ### Объяснение изменений: 1. Вместо того чтобы конкатенировать строки с помощью `+=`, мы используем `string.Join`, который позволяет объединить массив строк с указанным разделителем (в данном случае — `Environment.NewLine`, который обеспечивает перенос строки в соответствии с операционной системой). 2. Это гарантирует, что все строки в выходном файле будут иметь правильные переносы на строки, так как они были в исходном файле. Теперь при выполнении программы файл `new.txt` будет содержать текст в исходном формате, включая все переносы строк.
Ну раз ReadAllLines, то, соответственно, WriteAllLines
RTFM :
File.ReadAllLines
...
Этот метод открывает файл, считывает каждую строку файла, а затем добавляет каждую строку в качестве элемента массива строк. Затем файл закрывается. Строка определяется как последовательность символов, за которой следует возврат каретки ('\r'), канал строки ('\n') или возврат каретки, за которым сразу же следует передача строки. Результирующая строка не содержит завершающего возврата каретки и (или) перевода строки.