C# ASP.NET、Streamwriter、Filestream-0字节文件

C# ASP.NET、Streamwriter、Filestream-0字节文件,c#,asp.net,filestream,streamwriter,C#,Asp.net,Filestream,Streamwriter,这项工作: using (StreamWriter stw = new StreamWriter(Server.MapPath("\\xml\\file.xml"))) { stw.Write(xmlEncStr); } 这将创建一个空文件: using (FileStream file = new FileStream(Server.MapPath("\\xml\\file.xml"), FileMode.CreateNew)) { using (StreamWriter s

这项工作:

using (StreamWriter stw = new StreamWriter(Server.MapPath("\\xml\\file.xml")))
{
    stw.Write(xmlEncStr);
}
这将创建一个空文件:

using (FileStream file = new FileStream(Server.MapPath("\\xml\\file.xml"), FileMode.CreateNew))
{
    using (StreamWriter sw = new StreamWriter(file))
    {
        sw.Write(xmlEncStr);
    }
}
我试着使用FileStream构造函数并尝试刷新,但仍然得到一个零字节的文件。我正在编写的字符串是一个简单的base64编码的ascii字符串,没有特殊字符

我知道我可以用第一个例子,但是为什么第二个不起作用呢

更新

这不是Filestream/StreamWriter问题,而是变量命名问题。我更正了上面的代码,所以现在两个版本都可以工作了。我最初有:

StreamWriter strw = new StreamWriter(file)

您可以将代码缩短一点:

File.WriteAllText(Server.MapPath("\\xml\\file.xml"), xmlEncStr);
另外,
MapPath
方法接受相对路径或虚拟路径,并将其转换为服务器上相应的物理路径
\\xml\\file.xml
不属于上述类型。它可能应该是:
~/xml/file.xml

不可复制。 它不应该是ASP.NET的问题,第二种形式应该可以使用(提供sw==strw

但是如果文件已经存在,则
FileMode.CreateNew
将失败,因此如果您使用固定文件名,并且如果它是在以前的尝试中作为空文件创建的,则可以解释这些症状


但是@Darin Dimitrov提供了一个更好的选择。

第二个例子是写一个名为“sw”的东西,而封闭的“using”块声明了一个名为“strw”的“StreamWriter”。Oy vey,谢谢DevMan,我现在觉得很愚蠢。Steve,作为记录,你应该编辑这个问题并更正打字错误。或者这就是问题的症结所在?别忘了要写的实际文本