filestream文件末尾的字符是什么?我正在while循环中搜索特定字符以检查它是否到达文件末尾。我可以搜索哪些角色?例如:Indexof('/n')endoflineIndexof('')endofword????----------文件结束??当Stream.Read返回零时,到达Stream的末尾。来自MSDN的示例,FileStream://打开流并将其读回。使用(FileStreamfs=File.OpenRead(path)){byte[]b=newbyte[1024];UTF8Encodingtemp=newUTF8Encoding(true);while(fs.Read(b,0,b.Length)>0){Console.WriteLine(temp.GetString(b));}}或者,使用(StreamReadersr=File.OpenText(filepath)){stringline;while((line=sr.ReadLine())!=null){//用line做点什么...lineCount++;也许你正在寻找的是这个using(StreamReadersr=newStreamReader("TestFile.txt")){Stringline;while((line=sr.ReadLine())!=null){Console.WriteLine(line);当FileStream返回0时,并不意味着您已到达文件末尾。我有过这样的经历。来自MSDN:读入缓冲区的总字节数。如果当前不可用,则此字节数可能小于请求的字节数,或者如果已到达流的末尾,则该字节数可能小于零。这种情况发生在像拇指驱动器这样的慢速设备上。没有EOF字符。在循环中调用FileStream.Read。当.Read()返回0表示没有读取任何字节时,它就完成了。文档非常清楚这种行为。http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspxRead方法仅在到达流末尾后返回零。否则,Read在返回之前总是从流中读取至少一个字节。如果在调用Read时流中没有数据可用,则该方法将阻塞,直到可以返回至少一个字节的数据。即使尚未到达流的末尾,实现也可以自由返回比请求更少的字节。字符串中没有“文件结束字符”(即使在文件中)。字符串的长度是已知的(Length属性),因此读取文件时无需检查:Nosuchcharacter。如果调用FileStream.ReadByte,它将返回-1表示文件结束。Read方法返回读取的零字节。如果在流周围使用StreamReader,则其ReadLine方法返回null或其EndOfStream属性返回true。有时您不想阅读整行。例如,如果行很长,或者将字符串保存在临时变量中是没有用的。在这些情况下,您可以在StreamReader上使用Peek()函数。当它返回-1时,你就到了最后。例如:以上是C#学习教程:filestream文件末尾的字符是什么?分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——//读取一个CSV文件,逐行打印出来publicstaticvoidReadAndPrintCSV(stringfullyQualifiedPath){使用(System.IO.StreamReadersr=File.OpenText(fullyQualifiedPath)){string[]lineArray=null;while((sr.Peek()>-1)&&(lineArray=sr.ReadLine().Split(','))!=null){foreach(lineArray中的字符串str){Console.Write(str+"");}控制台.WriteLine();}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
