在Xamarin PCL中编写JSON文件

时间:2017-06-02 16:48:09

标签: json xamarin

由于Xamarin PCL中没有System.IO.File,我听说编写JSON文件的唯一方法是使用Streams。但是,我还没有找到一个很好的链接,就像如何轻松使用它们一样。此外,这是唯一的出路还是有其他方法可以帮助我以JSON格式编写输出。

1 个答案:

答案 0 :(得分:1)

正如@Jason所说,你可以使用PclStorage。 否则,您可以使用DependencyService并在特定于平台的项目中编写代码。 你可以看看这个仓库

TestReadFile

这适用于Android

[assembly: Xamarin.Forms.Dependency(typeof(FilesImplementation))]
namespace TestReadFile.Droid
{
    public class FilesImplementation : IFiles
    {
        public FilesImplementation()
        {
        }


        public string ReadTextFile(string path, string fileName)
        {
            //throw new NotImplementedException();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(System.IO.Path.Combine(path, fileName))){
                string line = sr.ReadToEnd();
                sr.Close();
                return line;
            }
        }

        private string creaFileName(string directory, string fileName) { 
            string path = RootDirectory();
            string file = System.IO.Path.Combine(path, fileName);
            return file;
        }

        public void WriteTextFile(string path, string fileName, string stringToWrite)
        {
            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(System.IO.Path.Combine(path, fileName),false))
            {
                sw.WriteLine(stringToWrite);
                sw.Close();
            }
        }

        public string RootDirectory()
        {
            File path = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDcim);
            return path.AbsolutePath;
        }
    }
}

这是PCL界面

public interface IFiles
{
    string ReadTextFile(string path, string fileName);
    void WriteTextFile(string path, string filename, string stringToWrite);
    string RootDirectory();
}