Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var text = File.ReadAllText("in.txt").Split(new char[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
- File.Delete("out.txt");
- File.AppendAllText("out.txt", "Y\n");
- File.AppendAllText("out.txt", (node.y + 1) + " " + (node.x + 1) + "\n");
- File.WriteAllText("out.txt", "N");
- public static void Main()
- {
- // Запись текста в файл:
- File.WriteAllText("1.txt", "Hello, world!");
- // Путь относительно "текущей директории", которую можно узнать так:
- Console.WriteLine(Environment.CurrentDirectory);
- // Обычно это директория, в которой была запущена ваша программа
- // А размещение запущенного exe-файла можно узнать так:
- Console.WriteLine(Assembly.GetExecutingAssembly().Location);
- // Сформировать абсолютный путь по относительному можно так:
- Console.WriteLine(Path.Combine(Environment.CurrentDirectory, "1.txt"));
- // Записать строки в файл,
- // разделив их символом конца строки (\r\n для Windows и \n для Linux и MacOS)
- File.WriteAllLines("2.txt", new[] {"Hello", "world"});
- // Записать в файл массив байтов в бинарном виде:
- File.WriteAllBytes("3.dat", new byte[10240]);
- // Чтение данных из файла
- string text = File.ReadAllText("1.txt");
- string[] lines = File.ReadAllLines("2.txt");
- byte[] bytes = File.ReadAllBytes("3.dat");
- // Все файлы в текущей директории (точка в пути означает текущую директорию)
- foreach (var file in Directory.GetFiles("."))
- Console.WriteLine(file);
- }
- public static void Main()
- {
- //StringBuilder - это класс, представляющий собой изменяемую строку
- var builder = new StringBuilder();
- //Он содержит различные методы вставки, добавления, удаления и т.д.
- builder.Append("Some ");
- builder.Append("string ");
- builder.Append("#15");
- builder.Remove(0, 5);
- builder.Insert(0, "test ");
- //Также можно манипулировать отдельными символами
- builder[0] = 'T';
- //StringBuilder можно превратить в строку
- var str = builder.ToString();
- Console.WriteLine(str);
- //Не нужно полностью заменять строки на StringBuilder,
- //Только в тех случаях, когда действительно выполняется много преобразований
- }
- static void WrongConcatenation()
- {
- //Если нам нужно сконкатенировать большое количество строк
- //то конкатенация "в лоб" потребует очень много памяти в куче,
- //и будет работать медленно
- var str = "";
- for (int i = 0; i < 50000; i++)
- {
- str += i.ToString() + ", ";
- }
- }
- static void RightConcatenation()
- {
- //Конкатенация со StringBuilder работает в сотни раз быстрее
- //Однако, в случае 3-4 строк вы не почувствуете разницы, поэтому
- //в этом случае пользоваться StringBuilder не обязательно
- var builder = new StringBuilder();
- for (int i = 0; i < 50000; i++)
- {
- builder.Append(i);
- builder.Append(", ");
- }
- }
- public static void Main2()
- {
- var watch = new Stopwatch();
- watch.Start();
- WrongConcatenation();
- watch.Stop();
- Console.WriteLine(watch.ElapsedMilliseconds);
- watch = new Stopwatch();
- watch.Start();
- RightConcatenation();
- watch.Stop();
- Console.WriteLine(watch.ElapsedMilliseconds);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement