Load and Save doesnt work

So the code should save it in a file named Player.Info.dat but it doesnt work when i run the game again. It only saves as long as i keep the game running and return to the main menu and play again.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

//namespace System.Runtime.Serialization.Formatters.Binary;
using Newtonsoft.Json;
public class GameAnalytics : MonoBehaviour
{
    public Data stats;
    private Info info;

    private bool saved;

    public int enemies1Killed;
    public int enemies2Killed;
    public int enemies3Killed;

    private int playercounter;

    private GameObject player;
    
    void Start()
    {   

        enemies1Killed = enemies2Killed = enemies3Killed = 0;
        playercounter = 0;
        player = GameObject.FindWithTag("Player");

        Begin();
        
        
    }

    void UpdateQ(){
        playercounter++;
        if (playercounter > 300){
            info.playerPositions.Add(player.transform.position);
        }
    }

    public void Begin(){
        //stats = Load();
        saved = false;
        

        if (stats.list.Count == 0){
            stats.list = new List<Info>();
            Debug.Log("no old data");
        } else{
            Debug.Log("Data is being collected");
            ScoreManager.scoreCount = stats.list[stats.list.Count - 1].score;
            //Debug.Log(stats.list.Count);
            //Debug.Log(stats.list[0].score);
            Debug.Log("Begin Stats");
            Debug.Log(stats.list[stats.list.Count -1].placedLMG);
            Debug.Log(stats.list[stats.list.Count -1].placedCannon);
            Debug.Log(stats.list.Count);
            Debug.Log(stats.list[0].score);
            Debug.Log("End Stats");
        }
    }


    public void saveStats(){
        
        
        if (saved == false){
            saved = true;

            info = new Info();
            info.score = ScoreManager.scoreCount;
            info.enemies1Killed = enemies1Killed;
            info.enemies2Killed = enemies2Killed;
            info.enemies3killed = enemies3Killed;
            info.lastround = GameObject.FindWithTag("Spawner").GetComponent<SpawnEnemies>().round;

            GameObject[] turrets = GameObject.FindGameObjectsWithTag("Turret");
            foreach (GameObject turr in turrets){
                if (turr.name == "Cannon"){
                    info.placedCannon++;
                }
                if (turr.name == "LMG"){
                    info.placedLMG++;
                }
            }

            stats.list.Add(info);
            //Debug.Log(highscore);
            //Debug.Log(stats.list.Count);
            Save(stats);
        }
        
    }
    public void Save(Data saveData){
	if(File.Exists(Application.persistentDataPath + "/playerInfo.dat")){
		BinaryFormatter bfread = new BinaryFormatter();
		BinaryFormatter bfwrite = new BinaryFormatter();
		FileStream fileread = File.Open("file:" + Application.persistentDataPath + "/playerInfo.dat", FileMode.Open);
		Data dataread = (Data)bfread.Deserialize(fileread);
		Data datawrite = stats;
		bfwrite.Serialize(fileread, datawrite);
		fileread.Close();
	} else{
		BinaryFormatter bf = new BinaryFormatter();
		FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
		Data data = stats;
		bf.Serialize(file, data);
		file.Close();
	}
	
}

public void Load(){
	if(File.Exists(Application.persistentDataPath + "/playerInfo.dat")){
		BinaryFormatter bf = new BinaryFormatter();
		FileStream file = File.Open(Application.persistentDataPath + "/playerInfo.dat", FileMode.Open);
		Data data = (Data)bf.Deserialize(file);
        stats = data;
		file.Close();
	} }


}

[Serializable]
public class Data
{
 public List<Info> list;

}

public class Info
{

 public int score;

 public int lastround;

 public int enemies1Killed;

 public int enemies2Killed;

 public int enemies3killed;
 public int placedLMG;
 public int placedCannon;

 public List<Vector3> playerPositions = new List<Vector3>();


}