C#如何使用流和响应作为1来读取2个文件
我需要读取2个文件,并以某种方式组合它们,并将它们作为1进行响应。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
我不想创建包含两个文件文本的新文件。
这是我响应主文件的代码
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)如果将两个if子句合并并否定它们,则可以减少嵌套<代码>如果(!File.Exists(File1)| |!File.Exists(File2))返回;字符串appendText=File.ReadAllText(文件1)+File.ReadAllText(文件2)代码>