Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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#_File - Fatal编程技术网

在不带换行符的情况下读取C#格式的文件

在不带换行符的情况下读取C#格式的文件,c#,file,C#,File,我想从C#中的文本文件中读取。但是我想把文件中的所有行连接成一行 例如,如果文件中有 ABCD EFGH 我需要把ABCDEFGH读成一行 我可以通过从文件中一次读取一行并将该行连接到循环中的字符串来实现这一点。但是有没有更快的方法可以做到这一点呢?使用以下方法: using (System.IO.StreamReader myFile = new System.IO.StreamReader("test.txt")) { string myString = myFile.ReadToEn

我想从C#中的文本文件中读取。但是我想把文件中的所有行连接成一行

例如,如果文件中有

ABCD

EFGH

我需要把ABCDEFGH读成一行

我可以通过从文件中一次读取一行并将该行连接到循环中的字符串来实现这一点。但是有没有更快的方法可以做到这一点呢?

使用以下方法:

using (System.IO.StreamReader myFile = new System.IO.StreamReader("test.txt")) {
   string myString = myFile.ReadToEnd().Replace(Environment.NewLine, "");
}
将“”替换为“”或任何其他可选的“行分隔符”

示例文件:

某行

其他线路

还有一个

以“”作为分隔符: 有些行,有些行,还有另一行

以“”作为分隔符:
一些线路一些其他线路和另一个线路

什么是
一条线路

如果要将文件的全部内容放入字符串中,可以这样做

string fileContent  = File.ReadAllText(@"c:\sometext.txt");
如果希望字符串不包含换行符,可以这样做

fileContent = fileContent.Replace(Environment.NewLine, " ");

你的目的是什么?修改光盘上的文件或在变量中获取全部内容?我有一个包含数千行的文件,我希望将它们作为一行读取并将该行存储在变量中。嗨,它不会删除新行字符。例如,如果文件中有ABCD EFGH,我需要将ABCDEFGH作为一行读取。是的,我可以这样做,也可以使用替换方法,但速度会更快吗?您能否解释一下为什么这样更有效?string.Join分配灵活,复杂性为O(n),其中n是行数。string.Replace的复杂度为O(m),m是字符数(总数),因为它遍历每个字符并将其与Environment.NewLine进行比较,我们知道m>n(总字符数大于行数),因此循环次数就更少了。这将起作用,但它的效率不如使用File.ReadAllLines和string。Join@Yorye差异有多大?如果n是行数,m是所有行中的字符数,那么差异是乘以m除以n。(因为m>=n,看起来很有希望)@Yorye你愿意解释一下你的推理吗
string.Replace
只是调用了一些不透明的CLR方法,所以我无法将其与
string.Join
实现进行比较。您不必查看反汇编,只要想想函数的逻辑意味着什么。要么将字符串一个接一个地放在末尾开始(字符串长度为x),要么遍历一个长字符串(长度为x),将每个字符与换行符进行比较,然后将其替换(甚至可能每次都分配一个新的超长字符串-但即使不是:不必要的音调比较!)
fileContent = fileContent.Replace(Environment.NewLine, " ");
string file = File.ReadAllText("text.txt").Replace("\r\n", " ");