使用FileStream的额外字节(或看起来)

时间:2019-05-30 15:44:18

标签: c# filestream

我正在将一些JSON直接写入文件,然后在以后读取。然后使用newton将JSON反序列化为对象。

起初我是这样写的,并且运行良好:

using (var sw = File.CreateText(jsonFile))
{
    sw.Write(content);
}

然后我遇到了比赛状况,被告知改走这条路线

using (var fs = new FileStream(jsonFile, FileMode.Open, FileAccess.Write,
    FileShare.ReadWrite))
{
    using (var sr = new StreamWriter(fs))
    {
        sr.Write(content);
    }
}

但是反序列化JSON时,我收到了此消息

  

Newtonsoft.Json.JsonReaderException:阅读完JSON内容后遇到的其他文本:u。路径“

当我向StreamWriter(UTF8)添加编码时,我得到了相同的消息,但字符不同。

因此,根据评论的建议,我为流写入器尝试了此操作,以进行编码以删除BOM

var utf8WithoutBom = new System.Text.UTF8Encoding(false);

然后将其添加到流作家。返回了相同的错误,但是这次字符为空。

使用jsonlint编写的JSON(内容)可以使用上述两种方法正确验证。

有人知道为什么第二种方法(使用FileStream)不起作用吗?如果是这样,您对我应该怎么做有建议?

0 个答案:

没有答案