Чтение текстового файла с использованием System.IO и C#

Переводы статьи Переводы статьи
Код статьи: 306777 - Vizualiza?i produsele pentru care se aplic? acest articol.
Для версии Microsoft Visual Basic .NET в данной статье см. 302309.

В данной статье относится к следующие пространства имен библиотеки классов Microsoft платформа.NET Framework:
  • System.IO
  • System.Collections
Развернуть все | Свернуть все

В этой статье

Аннотация

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

Требования

Microsoft Visual C#

Чтение текстовых файлов в Visual C#

Открытие и чтение файлов для доступа для чтения является важной частью функций ввода вывода (IO), даже если необходимо записать в файл. В этом примере открывается файл для чтения, который полезен для чтения текстовых файлов, но подходит для двоичных файлов. В этом примере используется один из многих методов, доступных для открытия файла.

Хотя для хранения сведений, которые извлекаются из файла доступны несколько структур данных, класс ArrayList является наиболее простой структурой для использования. Чтобы открыть и прочитать из файла, в этом примере используются объекты из пространства имен System.IO , в частности класс System.IO.StreamReader .

Примечание Этот пример требует некоторого вида текстового файла (.txt) из которого производится чтение.

Чтобы загрузить и прочитать текстовый файл из Visual C#, выполните следующие действия.
  1. Запустите Microsoft Visual Studio.
  2. Создайте новое консольное приложение в Visual C#. Visual Studio создает Статический класс , а также пустой процедуре Main() .
  3. Убедитесь, что проект ссылается по крайней мере пространство имен System . Использование инструкции using для пространства имен System.IOи System.Collectionsсистемытаким образом, не требуется указывать объявления из этих пространств имен в коде. Необходимо использовать эти инструкции перед всеми остальными объявлениями.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Чтобы открыть файл для чтения, создания нового экземпляра объекта StreamReader и передайте путь к файлу в конструктор следующим образом:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Необходимо иметь строковую переменную для хранения каждой строки файла в ходе обработки. Поскольку добавление строк будет производиться в ArrayList, необходимо объявить и создать объект этого типа.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Существует несколько способов чтения файла, включая ReadToEnd метод, который считывает всего файла за один раз. Тем не менее в этом примере с помощью метода ReadLine импортирует файла по одной строке за раз. При достижении конца файла, этот метод возвращает значение null, предоставляет способ завершить цикл. При чтении каждой строки в файле, можно использовать метод Add класса ArrayList для вставки строк в класс ArrayList .
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Используйте цикл For Each для вывода содержимого ArrayList на консоль следующим образом:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Сохраните и запустите ваш код, который создает список файла на консоль.

Полный пример кода

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

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

Есть несколько моментов, которые следует учитывать при работе с файлового ввода-вывода, включая следующие элементы:
  • Любое время получить доступ к файлу, есть вероятность, возможно использование, попытка чтения или записи файла или не может быть в системе.
  • Этот пример считывает файл целиком в память перед обработкой файлов. Могут возникнуть ситуации, в которой файл слишком велик для хранения в памяти, или у вас нет разрешения на доступ к файлу.
Любой из этих ситуаций привести к возникновению исключения. Рекомендуется всегда выполнять блок try... catch для обработки этих общих проблем.

Свойства

Код статьи: 306777 - Последний отзыв: 7 октября 2013 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Ключевые слова: 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 306777

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com