C#如何使用Stream读取2个文件,并将响应作为1

时间:2016-08-13 20:58:24

标签: c# file-processing

我需要读取2个文件并以某种方式将它们组合起来并将它们作为响应1 我不想创建包含两个文件文本的新文件 这是我的代码来回复我的主文件,

FileStream fs = File.OpenRead(string.Format("{0}/neg.acc",
                              Settings.Default.negSourceLocation));
using (StreamReader sr = new StreamReader(fs))
{
   string jsContent = sr.ReadToEnd();
   context.Response.Write(jsContent);
}

我需要在主要完成后立即阅读我的第二个文件。

解释它的简单方法:
假设主文件包含:"你好"
第二个文件包含:"多么美好的一天"

我的回答应该是:
"你好"
"多么美好的一天"

提前致谢

4 个答案:

答案 0 :(得分:1)

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        string File1 = @"c:\temp\MyTest1.txt";
        string File2 = @"c:\temp\MyTest2.txt";

        if (File.Exists(File1))
        {
            string appendText = File.ReadAllText(File1);
            if (File.Exists(File2))
            {
                appendText += File.ReadAllText(File2);
            }
        }
    }
}

答案 1 :(得分:1)

FileStream也是StreamReader之类的一次性对象。最好将其包含在using语句中。另外,为了使代码更具可重用性,请将代码放入自己的方法中读取文本文件,如:

public static string CombineFilesText(string mainPath, string clientPath)
{
    string returnText = ReadTextFile(mainPath);
    returnText += ReadTextFile(clientPath);

    return returnText;
}

private static string ReadTextFile(string filePath)
{
    using (FileStream stream = File.OpenRead(filePath))
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            return reader.ReadToEnd();
        }
    }
}

答案 2 :(得分:1)

好像你的问题需要asp.net标签

context.Response.WriteFile(Settings.Default.negSourceLocation + "/neg.acc");
context.Response.WriteFile(Settings.Default.negSourceLocation + "/neg2.acc");

https://msdn.microsoft.com/en-us/library/dyfzssz9

答案 3 :(得分:0)

这就是我所做的,不确定它是否正确使用C#,

 static public string CombineFilesText(string mainPath, string clientPath)
    {
        string returnText = "";

        FileStream mfs = File.OpenRead(mainPath);
        using (StreamReader sr = new StreamReader(mfs))
        {
            returnText += sr.ReadToEnd();
        }
        FileStream cfs = File.OpenRead(clientPath);
        using (StreamReader sr = new StreamReader(cfs))
        {
            returnText += sr.ReadToEnd();
        }

        return returnText;
    }