У меня есть тестовый файл, содержащий
1,2,3
2,3,4
5,6,7
Я хочу вставить это в первую строку: A,B,C
Итак, я получаю:
A,B,C
1,2,3
2,3,4
5,6,7
Как я могу это сделать?
У меня есть тестовый файл, содержащий
1,2,3
2,3,4
5,6,7
Я хочу вставить это в первую строку: A,B,C
Итак, я получаю:
A,B,C
1,2,3
2,3,4
5,6,7
Как я могу это сделать?
Как и в предыдущих ответах, но это иллюстрирует, как делать то, что вы хотите сделать, одновременно уменьшая потребление памяти. Невозможно прочитать весь файл, который вы хотите изменить, даже если его открыть в потоке чтения/записи, потому что вы не можете "вставить" данные.
static void WriteABC(string filename)
{
string tempfile = Path.GetTempFileName();
using (var writer = new StreamWriter(tempfile))
using (var reader = new StreamReader(filename))
{
writer.WriteLine("A,B,C");
while (!reader.EndOfStream)
writer.WriteLine(reader.ReadLine());
}
File.Copy(tempfile, filename, true);
}
Вот ссылка, которая объясняет, как использовать классы TextReader (StreamReader) и TextWriter (StreamWriter) в С#.
http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=132
Хотя это характерно для С#, подход может быть относительно одним и тем же на многих языках.
(Примечание. Существует несколько способов сделать это, это всего лишь одна идея, которая быстро приходит на ум.)
По существу, вы можете прочитать содержимое вашего текстового файла в строке, найти начало этой строки, записать свою информацию (A, B, C с возвратом каретки или линейные каналы), а затем записать эту информацию обратно в текстовый файл, перезаписывающий исходное содержимое и сохранение.
Я думаю, что этот ответ проще и быстрее:
public static void WriteToFile(string Path, string Text)
{
string content = File.ReadAllText(Path);
content = Text + "\n" + content;
File.WriteAllText(Path, content);
}
Затем вы можете вызвать его:
WriteToFile("yourfilepath", "A,B,C");
Вы не можете "вставить" что-либо в текстовый файл.
Вам нужно