首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOException in StreamWriter

IOException in StreamWriter
EN

Stack Overflow用户
提问于 2012-08-14 14:31:37
回答 2查看 2.5K关注 0票数 0

我正在使用StreamWriter序列化来覆盖现有的xml文件。下面是我的代码段:

代码语言:javascript
复制
using(StreamWriter sw = new StreamWriter("\\hard disk\logs\test.xml"))
{
   this.Serializer.Serialize(sw,this.StateObject);
}

由于某些原因,我不时地在IOException行上获得StreamWriter,它非常通用,在我尝试调试它时,它没有内部异常。

StreamWriter行实际上清除了test.xml文件的内容并使其变为0字节,但同时也会抛出异常。由于这个异常,序列化从未发生,所以我得到了一个0字节文件。我可以使用异常处理程序来更正这个0字节,但我更感兴趣的是修复最初的问题,即为什么StreamWriter首先抛出异常。

你们以前见过StreamWriter的这种行为吗?我确保路径是有效的,并确认它具有权限,并且没有其他进程正在访问该文件(即使存在,我也会在堆栈跟踪中看到该错误)。

我想知道我在Window上运行和它有什么关系吗?尽管MSDN表示Window CE支持此System.IO库

编辑:

下面是我的堆栈跟踪,CopyData()函数是包含我的序列化的函数。查看System.IO.__Error.WinIOError(Int32 errorCode, String str)行的值,我看到我的str值是"\hard disk\logs\test.xml“,errorCode是2147483648

代码语言:javascript
复制
at System.IO.__Error.WinIOError(Int32 errorCode, String str)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.IO.StreamWriter.CreateFile(String path, Boolean append)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path)
at Shs.ScanPanel.CA.DataManager.DataManagercr.CopyData(Object data)
at System.Threading.Timer.ring()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 16:36:52

2147483648是一个没有记录的错误。它是0x80000000的等价物--这不是一个定义的值。只有当文件名无效时,StreamWriter才会真正发生文档IOException。如果文件名无效,则由于某些未记录的原因而出现错误。

我建议直接使用其他类(如FileStreamFile (File.CreateFile.Open) )来重现问题,看看它们是否提供了更详细的错误。

票数 1
EN

Stack Overflow用户

发布于 2014-11-18 10:38:09

我也遇到了类似的问题。我还在读/写xml文件。问题在于,即使我使用的是(var writer = XmlWriter.Create(streamWriter,设置)){.}

using语句是在不关闭流并锁定流的情况下对xml编写器进行处理的。

要解决这个问题,您需要更改xmlWriterSettings CloseOutput = true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11954593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档