代码内容
GameData GetDataWithoutBOM(string fileName)
{
GameData data = new GameData();
Stream stream = new FileStream(fileName + @"\data.json", FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader streamReader = new StreamReader(stream, true);//true跳过bom
XmlSerializer xmlSerializer = new XmlSerializer(data.GetType());
data = xmlSerializer.Deserialize(streamReader) as GameData;
streamReader.Close();
stream.Close();
return data;
}
fliename就是我们存放的文件路径,文件是json格式的,这里通过流式读取来跳过bom,并且通过序列化获取数据,关于GameData这个类是我的自定义的数据存储类型。
/// <summary>
/// 存储数据类型
/// </summary>
[System.Serializable]
public class GameData
{
public int playerIntegration;
public int computerOneIntegration;
public int computerTwoIntegration;
}
我的data.json文件中的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<GameData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<playerIntegration>700</playerIntegration>
<computerOneIntegration>1200</computerOneIntegration>
<computerTwoIntegration>700</computerTwoIntegration>
</GameData>
以上方法是用代码来去除bom,其实用notepad++来重新编辑保存是更简单的,亲测可行。