【发布时间】:2015-07-11 01:55:43
【问题描述】:
我目前正在尝试处理文件,加入多个文件并遇到问题,因为文件 1 中的最后一个作品与文件 2 中的第一个单词相关联。例如:
文件 1:约翰换了新发型
文件 2:迈克的新发型
它打印我“haircutMike”。
我用来分割单词的代码:
input.Split(' ').ToList().ForEach(n =>{});
我也在从多个文件中制作一个大文件,如下所示:
string[] files = { "f1.txt", "f2.txt" };
FileStream outputFile = new FileStream("new.txt", FileMode.Create);
using (StreamWriter ws = new StreamWriter(outputFile))
{
foreach (string file in files)
{
ws.Write(System.IO.File.ReadAllText(file) + " ");
}
}
@编辑
更改了一些代码,当然我的意思是使用流而不是二进制,我也在使用拆分,因为我想计算文件中每个单词的数量,所以我必须拆分空格、点等。
您提到使用 + " " 选项,虽然它有效,但它在总数中增加了 1 个字母。
【问题讨论】:
-
ws.Write(System.IO.File.ReadAllBytes(file) + " ");首先你没有解释你想要发生什么......其次你为什么要使用 split ?
-
目前您将文件视为二进制数据。 (不清楚你为什么使用
BinaryWriter而不仅仅是Stream,请注意。)拆分词从何而来?请注意,如果您在文件 1 的末尾有换行符,则不会有问题 - 尽管您可能会在文件中途出现 Unicode 字节顺序标记,这不是很好。 -
运算符“+”不能应用于“void”和“string”类型的操作数。
-
哦,哇,我刚刚检查了我使用的是二进制写入器而不是流写入器,哇。请稍等,我会努力解决的。
-
稍微编辑了我的问题,+ " " 选项有效,虽然你问我为什么要分裂,但我这样做是为了计算单词,例如文件 1 中的“John is my cousing” 2 “John”,我想数 John = 2,等等。当我做 +“”时,它会使我的程序添加“=1”(是的空格 = 1)。
标签: c# file split stream streamreader