保存/加载Json字符串到/从.dat



我正试图学习如何将json字符串保存在。dat文件中,但我很难将其转换回正确的json字符串。我的新字符串以2个特殊字符开始(其余部分是正确的),我不确定为什么。

//Saving
string save = "a json string";
string path = @"E:tempTestMyTest.dat";
if (!File.Exists(path))
{
FileStream myFile = File.Create(path);
BinaryWriter binaryfile = new BinaryWriter(myFile);
binaryfile.Write(save);
binaryfile.Close();
myFile.Close();
}
//Loading
string path = @"E:tempTestMyTest.dat";
StreamReader objInput = new StreamReader(path, System.Text.Encoding.Default);
string contents = objInput.ReadToEnd().Trim();
string [] split = System.Text.RegularExpressions.Regex.Split(contents, "\s+", RegexOptions.None);  
StringBuilder sb = new StringBuilder(); 
foreach (string s in split)
{
sb.AppendLine(s);
}
string save = sb.ToString();    //string starts with 2 wrong special characters

我显然可以用一个简单的save = save. substring(2)来修复它,但我想了解我的代码中的错误是什么(我猜"\s+"部分正则表达式是错误的)。
另外,我不确定这是否仍然是将json转换为数据文件并返回的好方法。这个例子是我在网上找到的一个10年前的帖子。

正如在评论中发布的,我应该使用BinaryReader来读取文件。这就解决了问题。

//Loading
string path = @"E:tempTestMyTest.dat";
var stream = File.Open(path, FileMode.Open);
var reader = new BinaryReader(stream, Encoding.UTF8, false);
string save = reader.ReadString();
stream.Close();
reader.Close();