【问题标题】:StreamWriter data getting lost on a rebootStreamWriter 数据在重新启动时丢失
【发布时间】:2016-05-19 21:24:09
【问题描述】:

我正在使用StreamWriter 在登录和注销等会话更改中写入文件。

但是如果在我们写入/关闭文件的时候重新启动,我们会得到一个空文件,并且已经在其中的一些数据会被删除 这是我的代码

public void ToJson(T objectToWrite)
        {
            InformFileLogger.Instance.Debug(">>> start >>>");
            try
            {
                string json = null;
                string directory = Path.GetDirectoryName(this.serializeFilePath);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                if (File.Exists(this.serializeFilePath))
                {
                    if (new FileInfo(this.serializeFilePath).Length == 0)
                    {
                        File.Delete(this.serializeFilePath);
                    }
                }

                json = JsonConvert.SerializeObject(objectToWrite);

                if (json != null)
                {
                    using (StreamWriter streamWriter = new StreamWriter(this.serializeFilePath))
                    {
                        streamWriter.WriteLine(json);
                        streamWriter.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                InformEventLogger.Error(ex.ToString());
                InformFileLogger.Instance.Error(InformHelper.ExceptionMessageFormat(ex));
            }

            InformFileLogger.Instance.Debug("<<< end <<<");
        }

如何避免在文件中写入空条目/删除数据?

【问题讨论】:

    标签: c# windows-services


    【解决方案1】:

    这实际上取决于如何触发重启。

    除非您的代码触发了重新启动,否则您将无法确保您的代码在重新启动之前可以执行任何操作 - 包括完成 StreamWriter 函数。

    【讨论】:

    • 实际上我的问题是文件正在被写入,而不是原始字符串空白正在写入(对不起,我的英语不好)
    • 如果是这种情况,那么您需要扩展您的故障排除,并检查 objectToWrite 是否具有您期望的结构。此外,您需要验证 JsonConvert.SerializeObject 是否按照您的预期进行序列化。
    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2018-11-16
    • 2014-05-23
    • 2018-06-28
    相关资源
    最近更新 更多