Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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#如何使用流和响应作为1来读取2个文件_C#_File Processing - Fatal编程技术网

C#如何使用流和响应作为1来读取2个文件

C#如何使用流和响应作为1来读取2个文件,c#,file-processing,C#,File Processing,我需要读取2个文件,并以某种方式组合它们,并将它们作为1进行响应。 我不想创建包含两个文件文本的新文件。 这是我响应主文件的代码 FileStream fs = File.OpenRead(string.Format("{0}/neg.acc", Settings.Default.negSourceLocation)); using (StreamReader sr = new StreamReader(fs)) { string

我需要读取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);
}
我需要我的第二个文件被读取后,主要是做的权利

一种简单的解释方法:
假设主文件包含:“hello”
第二个文件包含:“多么美好的一天”

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


提前感谢

这是我做的,不确定使用C#的方法是否正确

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);
            }
        }
    }
}

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


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();
        }
    }
}

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();
        }
    }
}

似乎您的问题需要asp.net标记

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

您的问题似乎需要asp.net标记

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

不能在同一读取操作中执行此操作。我建议创建一个子例程来读取文件并进行2次调用,每个文件调用一次,并将响应组合到一个字符串变量中。您能给我举个例子吗?在第二个文件上打开另一个流有什么问题,读取它以结束并将第二个文件的内容附加到第一个文件的内容中?这些文件是自动递增的吗?我的意思是,每个文件都有很多行,而你只需要最后一行,或者每个文件只有一行?尝试:file.readalltext(sourcefile)获取所有文本行。请看@Steve I根据您的评论所做的,它是有效的,但是没有正确的方法来做它吗?您不能在相同的读取操作中做它。我建议创建一个子例程来读取文件并进行2次调用,每个文件调用一次,并将响应组合到一个字符串变量中。您能给我举个例子吗?在第二个文件上打开另一个流有什么问题,读取它以结束并将第二个文件的内容附加到第一个文件的内容中?这些文件是自动递增的吗?我的意思是,每个文件都有很多行,而你只需要最后一行,或者每个文件只有一行?尝试:file.readalltext(sourcefile)获取所有文本行。请看@Steve I根据您的评论这样做了,它起作用了,但是没有合适的方法来做吗?如果您将两个if子句合并并否定它们,您可以减少嵌套<代码>如果(!File.Exists(File1)| |!File.Exists(File2))返回;字符串appendText=File.ReadAllText(文件1)+File.ReadAllText(文件2)如果(!File.Exists(File1)| |!File.Exists(File2))返回;字符串appendText=File.ReadAllText(文件1)+File.ReadAllText(文件2)