打开一个TextReader(例如,通过File.OpenText- 注意这File是一个静态类,所以你不能创建它的实例)并重复调用Read.返回int而不是char它也可以指示文件结束:
int readResult = reader.Read();
if (readResult != -1)
{
char nextChar = (char) readResult;
// ...
}
Run Code Online (Sandbox Code Playgroud)
或循环:
int readResult;
while ((readResult = reader.Read()) != -1)
{
char nextChar = (char) readResult;
// ...
}
Run Code Online (Sandbox Code Playgroud)
或者更加时髦的善良:
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"))
{
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下,File.OpenText都将使用UTF-8编码.如果不是您想要的,请明确指定编码.
编辑:要找到一行的结尾,你要检查字符是否\n......你可能也想要\r特别处理,如果这是一个Windows文本文件.
但如果你想要每一条线,为什么不直接打电话ReadLine?您可以随后迭代该行中的字符...
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |