我想將2個.txt文件合併到一個文本文件中。假設我有2個文本文件。第一個只包含100行「再試一次」。像這樣的畫面:合併2個文本文件ASP.NET
而第二個文本文件中包含的隨機碼一堆:
我要合併這2個文本文件,這樣一個在下面的圖片:
我有一週,我還沒有弄清楚。
我想將2個.txt文件合併到一個文本文件中。假設我有2個文本文件。第一個只包含100行「再試一次」。像這樣的畫面:合併2個文本文件ASP.NET
而第二個文本文件中包含的隨機碼一堆:
我要合併這2個文本文件,這樣一個在下面的圖片:
我有一週,我還沒有弄清楚。
編輯:我編輯代碼通過吉姆,他警告我,現在它的工作。 首先,您需要讀取兩個文件並將所有行存儲到字符串數組中。然後像下面的波紋管一樣環繞它們。你需要從第二個文件中檢查和寫入每五個項目。 PS:我沒有嘗試過這個代碼,但是它確實沒有錯誤。
string[] first = System.IO.File.ReadAllLines("path of first txt file");
string[] second = System.IO.File.ReadAllLines("path of second txt file");
var sb = new StringBuilder();
var k = 0;
var m = 0;
for (int i = m; i < second.Length; i++)
{
m = i + 1;
for (int j = k; j < first.Length; j++)
{
k = j + 1;
if (j != 0 && j % 4 == 0)
{
sb.Append(second[i] + "\n");
break;
}
else
{
sb.Append(first[j] + "\n");
continue;
}
}
}
// create new txt file
var file = new System.IO.StreamWriter("path of third txt file");
file.WriteLine(sb.ToString());
你確定這將工作正確嗎?似乎它會輸出太多東西。也就是說,它會爲'first'的每一行輸出全部'second'。也許你的意思是「繼續」是一個「休息」?但是這也行不通。我認爲你採取了錯誤的做法。這個問題不能通過像你擁有的簡單的嵌套循環結構來解決。 – 2014-11-23 00:49:22
感謝Jim糾正我,我編輯代碼。我測試和工作。 – Kadir 2014-11-23 10:38:52
只要打開這兩個文件,並在循環中從第一行和第二行中讀取四行。在讀取每行時輸出。
using (var outputFile = File.CreateText("OutputFile.txt"))
{
using (var input1 = File.OpenText("TryAgain.txt"))
using (var input2 = File.OpenText("File2.txt"))
{
while (!input1.EndOfStream && !input2.EndOfStream))
{
int i;
for (i = 0; i < 4 && !input1.EndOfStream; ++i))
{
var s1 = input1.ReadLine();
outputFile.WriteLine(s1);
}
if (i != 4) break; // end of first file
// now read one line from the other file, and output it
var s2 = input2.ReadLine();
outputFile.WriteLine(s2);
}
}
}
這有不必一下子讀取兩個文件到內存的優勢,你不必在內存中構建的整個輸出。每行在寫入後立即輸出。
難道你不能只讀取這兩個文件,併合並你的線,並將其寫入第三個文件? – 2014-11-22 17:19:30
@VsevolodGoloviznin,這是我想要的。但我還沒有弄明白。 – aldoblack 2014-11-22 17:22:17
您可以查看該參考以閱讀該文件:http://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx以及用於寫入文件的文件:http://msdn.microsoft.com/en-us /library/8bh11f1k.aspx – 2014-11-22 17:24:05