首先,我想提一下,我几天前才开始学习C#,所以我对它的了解有限.
我正在尝试创建一个程序,该程序将解析用户输入的某些短语的文本文件,然后将它们输出到新的文本文档中.
目前,我有一个程序搜索原始输入文件并收集用户输入的选定文本,处理这些行,创建新的文本文件,然后将它们合并在一起,然后删除它们.
我猜这不是创建这个的最有效的方法,但我只是创建它并让它以逻辑庄园工作,让我理解为新手.
代码如下;
private void TextInput1()
    {
        using (StreamReader fileOpen = new StreamReader(txtInput.Text))
        {
            using (StreamWriter fileWrite = new StreamWriter(@"*DIRECTORY*\FIRSTFILE.txt"))
            {
                string file;
                while ((file = fileOpen.ReadLine()) != null)
                {
                    if (file.Contains(txtFind.Text))
                    {
                            fileWrite.Write(file + "\r\n");
                    }
                }
            }
        }
    }
    private void TextInput2()
    {
        using (StreamReader fileOpen = new StreamReader(txtInput.Text))
        {
            using (StreamWriter fileWrite = new StreamWriter(@"*DIRECTORY*\SECONDFILE.txt"))
            {
                string file;
                while ((file = fileOpen.ReadLine()) != null)
                {
                    if (file.Contains(txtFind2.Text))
                    {
                        fileWrite.Write("\r\n" + file);
                    }
                }
            }
        }
    }
    private static void Combination()
    {
        ArrayList fileArray = new ArrayList();
        using (StreamWriter writer = File.CreateText(@"*DIRECTORY*\FINALOUTPUT.txt"))
        {
            using (StreamReader reader = File.OpenText(@"*DIRECTORY*\FIRSTFILE.txt"))
            {
                writer.Write(reader.ReadToEnd());
            }
            using (StreamReader reader = File.OpenText(@"*DIRECTORY*\SECONDFILE.txt"))
            {
                writer.Write(reader.ReadToEnd());
            }
        }
    }
    private static void Delete()
    {
        if (File.Exists(@"*DIRECTORY*\FIRSTFILE.txt"))
            {
                File.Delete(@"*DIRECTORY*\FIRSTFILE.txt");
            }
        if (File.Exists(@"*DIRECTORY*\SECONDFILE.txt"))
            {
                 File.Delete(@"*DIRECTORY*\SECONDFILE.txt");
            }
    }
正在创建的输出文件只是输出第一个文本输入,然后是第二个.我想知道是否有可能将它们合并为1个文件,一次1行,因为它是一个连续的文件意味着需要输入1的信息跟随2而不是全部1然后全部2.
谢谢,尼尔.
试试这个方法。您可以接收三个路径。文件 1、文件 2 和文件输出。
public void MergeFiles(string pathFile1, string pathFile2, string pathResult)
{
    File.WriteAllText(pathResult, File.ReadAllText(pathFile1) + File.ReadAllText(pathFile2));
}
如果pathResult文件存在,该WriteAllText方法将覆盖它。请记住包含System.IO命名空间。
重要提示:不推荐用于大文件!使用此线程上可用的其他选项。
要将两个文件内容逐行合并到一个合并文件中,您可以用您的Combination()代码替换它
string[] file1 = File.ReadAllLines("*DIRECTORY*\FIRSTFILE.txt");
string[] file2 = File.ReadAllLines("*DIRECTORY*\SECONDFILE.txt");
using (StreamWriter writer = File.CreateText(@"*DIRECTORY*\FINALOUTPUT.txt"))
{
    int lineNum = 0;
    while(lineNum < file1.Length || lineNum < file2.Length)
    {
        if(lineNum < file1.Length)
            writer.WriteLine(file1[lineNum]);
        if(lineNum < file2.Length)
            writer.WriteLine(file2[lineNum]);
        lineNum++;
    }
}
这假定这两个文件不包含相同数量的行.
| 归档时间: | 
 | 
| 查看次数: | 17017 次 | 
| 最近记录: |