首页 > 解决方案 > 应用程序卡在 File.OpenText()

问题描述

在 Xamarin Android 应用程序中,我使用此函数从存储的 json 文件中读取数据

public async Task<Caselist> readData()
        {
            var file = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "data_covid_dashboard.json");
            try
            {
                System.Console.Write("Reading data...");
                using (StreamReader fileContent = File.OpenText(file))
                {
                    JsonTextReader reader = new JsonTextReader(fileContent);
                    JObject jo = (JObject)JToken.ReadFrom(reader);
                    return jo.ToObject<Caselist>();
                }
                
            }
            catch (Exception)
            {

                throw;
            }
        } 

但是,应用程序似乎卡在using (StreamReader fileContent = File.OpenText(file))

所需的文件约为 ~130MB。

问候,

乔纳森

标签: c#xamarinxamarin.androidjson.net

解决方案


得到它的工作。还要感谢布赖恩。

public async Task<Caselist> readData()
    {
        var file = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "data_covid_dashboard.json");
        try
        {
            System.Console.Write("Reading data...");
            using (StreamReader fileContent = new StreamReader(file))
            {
                var json = fileContent.ReadToEnd();
                return JsonConvert.DeserializeObject<Caselist>(json);
            }
            
        }
        catch (Exception)
        {

            throw;
        }
    }

推荐阅读