Sma*_*EGA 13 .net c# asp.net string
我在while循环中搜索特定字符以检查它是否到达文件末尾.
我可以搜索哪个角色?
例如:
Indexof('/n') end of line
Indexof(' ') end of word
???? ---------- end of file??
Run Code Online (Sandbox Code Playgroud)
Mit*_*eat 16
当Stream.Read返回零时,到达Stream的结尾.
来自MSDN,FileStream的示例:
// Open a stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
Run Code Online (Sandbox Code Playgroud)
要么,
using (StreamReader sr = File.OpenText(filepath))
{
string line;
while ((line = sr.ReadLine()) != null)
{
// Do something with line...
lineCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
也许你正在寻找的是这个
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
String line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
当FileStream返回0时,并不意味着您已到达文件末尾.我有过这样的经历.
从MSDN:读入缓冲区的总字节数.如果该字节数当前不可用,则可能小于请求的字节数,如果到达流的末尾,则可能小于零.
这种情况发生在像thumbdrive这样的慢速设备上.
没有 EOF 字符。FileStream.Read循环调用。当.Read()没有读取字节返回 0 时,您就完成了。
文档对这种行为非常清楚。
http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx
Read 方法仅在到达流末尾后才返回零。否则, Read 在返回之前总是从流中读取至少一个字节。如果调用 Read 时流中没有可用数据,则该方法将阻塞,直到可以返回至少一个字节的数据。即使尚未到达流的末尾,实现也可以自由地返回比请求少的字节。
| 归档时间: |
|
| 查看次数: |
62241 次 |
| 最近记录: |