Создайте текстовый файл на диске и скопируйте его на экран

Обновлено: 21.11.2024

Исходная версия продукта: Visual Studio
Исходный номер базы знаний: 816149

Обзор

В разделе "Чтение текстового файла" этой статьи описывается, как использовать класс StreamReader для чтения текстового файла. В разделах Запись текстового файла (пример 1) и Запись текстового файла (пример 2) описано, как использовать класс StreamWriter для записи текста в файл.

Чтение текстового файла

В следующем коде используется класс StreamReader для открытия, чтения и закрытия текстового файла. Вы можете передать путь к текстовому файлу конструктору StreamReader для автоматического открытия файла. Метод ReadLine считывает каждую строку текста и увеличивает указатель файла на следующую строку по мере ее чтения. Когда метод ReadLine достигает конца файла, он возвращает нулевую ссылку. Дополнительные сведения см. в разделе Класс StreamReader.

Создайте образец текстового файла в Блокноте. Выполните следующие действия:

  1. Вставьте текст hello world в Блокнот.
  2. Сохраните файл как Sample.txt.

Запустите Microsoft Visual Studio.

В меню "Файл" выберите "Создать" и выберите "Проект".

Добавьте следующий код в начало файла Class1.cs:

Добавьте следующий код в метод Main:

В меню "Отладка" выберите "Пуск", чтобы скомпилировать и запустить приложение. Нажмите ENTER, чтобы закрыть окно консоли. В окне консоли отображается содержимое файла Sample.txt:

Записать текстовый файл (пример 1)

В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. Подобно классу StreamReader, вы можете передать путь к текстовому файлу конструктору StreamWriter для автоматического открытия файла. Метод WriteLine записывает полную строку текста в текстовый файл.

Запустите Visual Studio.

В меню "Файл" выберите "Создать" и выберите "Проект".

Добавьте следующий код в начало файла Class1.cs:

Добавьте следующий код в метод Main:

В меню "Отладка" выберите "Пуск", чтобы скомпилировать и запустить приложение. Этот код создает файл с именем Test.txt на диске C. Откройте Test.txt в текстовом редакторе, например в Блокноте. Test.txt содержит две строки текста:

Записать текстовый файл (пример 2)

В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. В отличие от предыдущего примера, этот код передает конструктору два дополнительных параметра. Первый параметр — это путь к файлу и имя файла. Второй параметр, true , указывает, что файл открывается в режиме добавления. Если вы укажете false для второго параметра, содержимое файла перезаписывается каждый раз, когда вы запускаете код. Третий параметр указывает Unicode , чтобы StreamWriter кодировал файл в формате Unicode. Вы также можете указать следующие методы кодирования для третьего параметра:

Метод Write аналогичен методу WriteLine, за исключением того, что метод Write не встраивает автоматически комбинацию символов возврата каретки или перевода строки (CR/LF). Это полезно, когда вы хотите писать по одному символу за раз.

Запустите Visual Studio.

В меню "Файл" выберите "Создать", а затем "Проект".

Добавьте следующий код в начало файла Class1.cs:

Добавьте следующий код в метод Main:

В меню "Отладка" выберите "Пуск", чтобы скомпилировать и запустить приложение. Этот код создает файл с именем Test1.txt на диске C. Откройте Test1.txt в текстовом редакторе, например в Блокноте. Test1.txt содержит одну строку текста: 0123456789.

Полный листинг кода для чтения текстового файла

Полный листинг кода для написания текстового файла (версия 1)

Полный листинг кода для записи текстового файла (версия 2)

Устранение неполадок

Для всех операций с файлами рекомендуется заключать код в блок try-catch-finally для обработки ошибок и исключений. В частности, вы можете освободить дескрипторы файла в последнем блоке, чтобы файл не был заблокирован на неопределенный срок. Некоторые возможные ошибки включают файл, который не существует, или файл, который уже используется.

Джейсон Фитцпатрик

Джейсон Фитцпатрик
Редактор по особым поручениям

Джейсон Фитцпатрик — главный редактор LifeSavvy, дочернего сайта How-To Geek, посвященного лайфхакам, советам и рекомендациям.Он имеет более чем десятилетний опыт публикации и является автором тысяч статей для Review Geek, How-To Geek и Lifehacker. Джейсон работал редактором Weekend Lifehacker до того, как присоединился к How-To Geek. Подробнее.

Сохранение выходных данных команды командной строки Windows – это отличный способ получить красивую аккуратную копию, чтобы поделиться ею со службой поддержки, проанализировать более длинные выходные данные с помощью вашего любимого текстового редактора или иным образом взаимодействовать с выходными данными с большей гибкостью, чем оставаться в Командное окно позволяет.

Чтобы перенаправить вывод команды в текстовый файл вместо того, чтобы выводить его на экран в командном окне, нам просто нужно выполнить команду и добавить к ней символ угловой скобки «>». перенаправление.

Если, например, вы хотите сохранить вывод функции DIR в текстовый файл вместо прокрутки страницы за страницей на экране в командном окне, вы должны выполнить команду

примерно так, когда мы запустили команду DIR из каталога C:\ и сохранили вывод в корневом каталоге диска D как «c-drive-directory-output.txt».

Обратите внимание, что вывод не отображается в командном окне выше, но когда мы открываем текстовый документ, мы видим полный вывод команды:

К любой команде, которая имеет выходные данные командного окна (независимо от того, насколько они большие или маленькие), можно добавить > filename.txt, и выходные данные будут сохранены в указанный текстовый файл.

Помимо одноразового выполнения команды, вы также можете немного изменить команду, чтобы для вашего удобства выводить последовательный вывод в один и тот же текстовый файл. Предположим, например, что вы хотите отправить вывод одной и той же команды в один и тот же текстовый файл до и после внесения каких-либо изменений (например, перезагрузки маршрутизатора и получения нового IP-адреса). Вы можете сначала выполнить команду с одинарной угловой скобкой «>», а затем повторить будущие экземпляры той же команды с двойной угловой скобкой «>>».

Таким образом, к тому же файлу name.txt будут добавлены (вместо того, чтобы перезаписываться, как это было бы с одной квадратной скобкой) дополнительные выходные данные команды.

  • › Как экспортировать список запущенных процессов в виде текстового файла в Windows 11
  • › Как узнать, какие групповые политики применяются к вашему ПК и учетной записи пользователя
  • › Как проверить открытые порты TCP/IP в Windows
  • › Как восстановить метки панели задач в Windows 11
  • › Почему СМС должен умереть
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Что означает XD и как вы его используете?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)

Уолтер Гленн

Уолтер Гленн
Бывший главный редактор

Уолтер Гленн – бывший главный редактор How-To Geek и связанных с ним сайтов. Он имеет более чем 30-летний опыт работы в компьютерной индустрии и более 20 лет в качестве технического писателя и редактора. Он написал сотни статей для How-To Geek и отредактировал тысячи. Он является автором или соавтором более 30 книг о компьютерах на более чем дюжине языков для таких издательств, как Microsoft Press, O'Reilly и Osborne/McGraw-Hill. Он также написал сотни технических документов, статей, руководств пользователя и курсов. Подробнее.

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

Создать текстовый файл с помощью команды Cat

В нашем первом методе создания текстовых файлов используется команда cat. Это полезно, если вы хотите сразу добавить текст в новый файл.

Просто введите следующую команду в терминале (заменив «sample.txt» на то, что вы хотите назвать файлом), а затем нажмите Enter:

После нажатия Enter вы не вернетесь к приглашению терминала. Вместо этого курсор помещается на следующую строку, и вы можете начать вводить текст прямо в файл. Введите строки текста, нажимая Enter после каждой строки. Когда вы закончите, нажмите Ctrl+D, чтобы выйти из файла и вернуться к подсказке.

Чтобы убедиться, что ваш файл был создан, вы можете использовать команду ls, чтобы отобразить список каталогов для файла:

Вы также можете использовать команду cat для просмотра содержимого вашего файла. Просто введите в командной строке следующую команду и нажмите Enter:

Создание текстового файла с помощью сенсорной команды

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

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

Чтобы создать новый файл, введите следующую команду в командной строке терминала (заменив «sample.txt» на любое имя файла, которое вы хотите использовать), а затем нажмите Enter:

Обратите внимание, что у вас нет никаких указаний на то, что файл был создан; вы только что вернулись к подсказке. Вы можете использовать команду ls для проверки существования вашего нового файла:

Вы также можете создать несколько новых файлов одновременно с помощью сенсорной команды. Просто добавьте столько дополнительных имен файлов (разделенных пробелами), сколько хотите, в конец команды:

нажмите образец1.txt образец2.txt образец3.txt

А когда вы будете готовы добавить текст в свои новые файлы, вы можете просто использовать текстовый редактор, например Vi.

Создайте текстовый файл, используя стандартный символ перенаправления (>)

Вы также можете создать текстовый файл, используя стандартный символ перенаправления, который обычно используется для перенаправления вывода команды в новый файл. Если вы используете его без предыдущей команды, символ перенаправления просто создает новый файл. Как и команда touch, создание файла таким способом не позволяет сразу вводить текст в файл. Однако, в отличие от сенсорной команды, создание файла с использованием символа перенаправления позволяет создавать только один файл за раз. Мы включаем его для полноты картины, а также потому, что если вы просто создаете один файл, вам придется меньше всего печатать.

Чтобы создать новый файл, введите следующую команду в командной строке терминала (заменив «sample.txt» на любое имя файла, которое вы хотите использовать), а затем нажмите Enter:

У вас нет указания, что файл был создан, но вы можете использовать команду ls, чтобы проверить существование вашего нового файла:

Эти три метода должны позволить вам быстро создавать текстовые файлы на терминале Linux, независимо от того, нужно ли вам вводить в них текст немедленно или нет.

< /tbody>
Команды Linux
Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm
Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg
Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
  • › Как использовать расширение Brace в оболочке Bash Linux
  • › Как объединить текстовые файлы с помощью команды «cat» в Linux
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Как восстановить метки панели задач в Windows 11
  • › Что означает XD и как вы его используете?
  • › Как установить Google Play Маркет в Windows 11
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.

Мне нужно написать сценарий, который может записывать одну строку текста в текстовый файл в том же каталоге, что и пакетный файл.

7 ответов 7

Вы можете использовать echo и перенаправить вывод в текстовый файл (см. примечания ниже):

  • @echo off отключает вывод каждой команды на консоль
  • Если вы не укажете ему определенный путь, перенаправление с > или >> будет выполнять запись в текущий каталог (каталог, в котором выполняется код).
  • Эхо Это тест > test.txt использует его > для перезаписи любого уже существующего файла новым содержимым.
  • Остальные операторы echo используют два символа >> для добавления к текстовому файлу (добавить в) вместо его перезаписи.
  • Тип test.txt просто вводит вывод файла в командное окно.

Проще использовать только один блок кода, тогда вам потребуется только одно перенаправление.

Боже мой, это так просто и делает его наполовину человечным, что впечатляет, поскольку написание сценариев похоже на введение в тарабарский мир программирования

У меня это не сработало, но сработал вариант с перенаправлением перед блоком ` > filename.txt ( `.

@willw Я полагаю, где-то в вашем блоке кода есть дополнительная закрывающая скобка. В противном случае она должна работать, независимо от того, поместите ли вы перенаправление перед блоком или после него

@jeb Возможно - у меня больше нет исходного тестового файла, поэтому я не уверен. Конечно, впоследствии мне приходилось избегать закрывающих () символов как ^), что могло бы поддержать вашу гипотезу. Тем не менее, по крайней мере, наше обсуждение предупреждает других о возможной ловушке.

echo "blahblah"> txt.txt удалит txt и поместит blahblah на его место

echo "blahblah">> txt.txt напишет blahblah на новой строке в txt

Я думаю, что оба создадут новый txt, если его не существует (я знаю, что первый существует)

Читайте также: