Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Xamarin Android中打开一个文件_Android_Xamarin - Fatal编程技术网

在Xamarin Android中打开一个文件

在Xamarin Android中打开一个文件,android,xamarin,Android,Xamarin,我是这个网站的新手 我在Xamarin Android打开文件时遇到了一些问题。我必须打开一个文件,其中包含食物和相对卡路里的列表,由一些分隔符字符分割 当我为Xamarin iOS编写此代码时,我对以下代码没有任何问题: outputText.Text = "The selectable foods are:\n\n"; foreach (string line in File.ReadLines("Cibi.txt")) { string[] cibsel = line.Split(

我是这个网站的新手

我在Xamarin Android打开文件时遇到了一些问题。我必须打开一个文件,其中包含食物和相对卡路里的列表,由一些分隔符字符分割

当我为Xamarin iOS编写此代码时,我对以下代码没有任何问题:

outputText.Text = "The selectable foods are:\n\n";
foreach (string line in File.ReadLines("Cibi.txt"))
{
    string[] cibsel = line.Split(delimiterChars);
    outputText.Text += cibsel[0] + "\n";
}
当然,在iOS中,该文件存储在Resources文件夹中

但当我开始在XamarinAndroid中编写相同的代码时,我开始遇到一些错误

首先由于Visaul Studio找不到文件路径(存储在Assets文件夹中),程序会发生异常。然后,我在Xamarin教程中发现建议使用Streamreader.ReadLine()而不是File.Readlines(),但我得到以下错误:

无法将类型“char”转换为“string”

程序必须仅从文件中读取食物和卡路里,并仅返回名称作为输出。我怎样才能做到这一点而不经历那种错误

提前谢谢

Enrico

Xamarin解释了如何在Android中访问文件。基本上,您需要将文件添加到Assets文件夹,并将其构建操作设置为
AndroidAsset
。然后在代码中,您可以像这样读取文件:

string line;

using (StreamReader sr = new StreamReader (Assets.Open (my_file_name)))
{
    do {
      line = sr.ReadLine();

      string[] cibsel = line.Split(delimiterChars);
      outputText.Text += cibsel[0] + "\n";

    } while(line != null);
}

谢谢你,杰森!现在我解决了读取文件的问题,程序运行良好。但是现在我在写同一个文件时遇到了类似的问题,因为我的程序还允许更新食物文件。我使用了stremwriter,当然使用了Assets.Open函数,但是当我调试并尝试更新文件时,我收到以下异常:System.ArgumentException:无法写入流。我不明白我怎么能解决它。。。非常感谢你的帮助!