Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有一种方法可以在不逐行读取的情况下检索文件的最后一个字符?_C#_.net_File Io - Fatal编程技术网

C# 有没有一种方法可以在不逐行读取的情况下检索文件的最后一个字符?

C# 有没有一种方法可以在不逐行读取的情况下检索文件的最后一个字符?,c#,.net,file-io,C#,.net,File Io,我需要检索文件的最后一个字符。它可能是换行符,也可能是许多特殊字符之一。我可以在不解析整个文件的情况下检索此字符吗?或者有没有一种方法可以将整个文件读入字符串而不用担心换行 我基本上需要根据文件的最后一个字符分割文件的内容。因此,如果它是换行符,我将按“\n”拆分字符串。StreamReader具有该方法。它将整个文件读入一个字符串。您可以查找()到文件-1的末尾,然后只读取()一个字节 string s = File.ReadAllText("test.txt"); string[] spli

我需要检索文件的最后一个字符。它可能是换行符,也可能是许多特殊字符之一。我可以在不解析整个文件的情况下检索此字符吗?或者有没有一种方法可以将整个文件读入字符串而不用担心换行

我基本上需要根据文件的最后一个字符分割文件的内容。因此,如果它是换行符,我将按“\n”拆分字符串。

StreamReader具有该方法。它将整个文件读入一个字符串。

您可以查找()到文件-1的末尾,然后只读取()一个字节

string s = File.ReadAllText("test.txt");
string[] split = s.Split(s[s.Length - 1]);

我目前没有Seek的确切函数名和常量,请查看流文档中的这些函数名和常量。

这将在整个文本中保留最后一个splitchar…您需要先删除它,然后再拆分!我不介意最后一个字符是否保留在正文中。这将是有效的EDI格式。这是我正在使用的代码,它工作得很好。谢谢Pent Ploompuu。1字节可能不等于1个字符。这可能取决于文件编码.System.IO.Stream.Seek(-1,System.IO.SeekOrigin.End).ReadByte(),如果他要读取整个文件,那么就真的不需要操纵流了。Unicode的优点很好。您需要知道编码方法才能获得最后一个字符。最后一个字符是一个或多个字节,因此您需要在文件中不断后退,直到获得完整的字符。@Brandon:Net中所有字符都是Unicode。如果你指的是最后一个字节,那么你应该编辑你的问题,用“字节”替换“字符”不是一种耗费时间和内存的获取最后一个字符的方法吗?@Pascal:你可能想重读这个问题。OP必须包含文件的全部内容,而不考虑最后一个字符,因此这将是更有效的路由。对,我太关注“不解析整个文件”部分了。不过,在末尾再在开头进行查找可以处理内存中不适合的文件。