Откройте TextReader
(например, File.OpenText
- обратите внимание, что File
является статическим классом, поэтому вы не можете создать его экземпляр) и несколько раззвоните Read
.Это возвращает int
вместо char
, поэтому также может указывать конец файла:
int readResult = reader.Read();
if (readResult != -1)
{
char nextChar = (char) readResult;
// ...
}
Или в цикл:
int readResult;
while ((readResult = reader.Read()) != -1)
{
char nextChar = (char) readResult;
// ...
}
Или для болеефанки добра:
public static IEnumerable<char> ReadCharacters(string filename)
{
using (var reader = File.OpenText(filename))
{
int readResult;
while ((readResult = reader.Read()) != -1)
{
yield return (char) readResult;
}
}
}
...
foreach (char c in ReadCharacters("foo.txt"))
{
...
}
Обратите внимание, что по умолчанию File.OpenText
будет использовать кодировку UTF-8.Укажите кодировку явно, если это не то, что вам нужно.
РЕДАКТИРОВАТЬ: Чтобы найти конец строки, вы бы проверили, является ли символ \n
... вы потенциально хотели бы обработать\r
особенно, если это текстовый файл Windows.
Но если вам нужна каждая строка , почему бы просто не позвонить ReadLine
?После этого вы всегда можете перебирать символы в строке ...