代码之家  ›  专栏  ›  技术社区  ›  MikeDouglasDev

azure data lake能否存储.net sdk读写二进制文件?

  •  0
  • MikeDouglasDev  · 技术社区  · 6 年前

    net sdk在读取和创建文本文件方面有一些很好的例子。这使用streamreader,不应与二进制文件一起使用。我试过使用BinaryReader,但没有成功。

    https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-data-operations-net-sdk

    //Read file contents
    using (var readStream = new StreamReader(client.GetReadStream(fileName)))
    {
        string line;
        while ((line = readStream.ReadLine()) != null)
        {
            Console.WriteLine(line);
        }
    }
    

    .net sdk可以创建/读取二进制文件吗?如果是,有没有这样做的例子?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tom Sun    6 年前

    .net sdk可以创建/读取二进制文件吗?如果是,有没有这样做的例子?

    简短的回答是肯定的,请参考下面的演示代码。

    创建二进制文件

    AdlsClient adlsClient = AdlsClient.CreateClient($"{datalakeAccount}.azuredatalakestore.net", clientCreds);
    using (var stream = adlsClient.CreateFile("file name", IfExists.Overwrite))
    {
        byte[] textByteArray = File.ReadAllBytes(@"local file path");
        stream.Write(textByteArray, 0, textByteArray.Length);
    }
    

    读取二进制文件并写入本地文件

    using (var filesream = adlsClient.GetReadStream("1.png"))
    
    {               
         MemoryStream memorystream = new MemoryStream();
         filesream.CopyTo(memorystream);
         memorystream.Position = 0;
         File.WriteAllBytes(@"filename", memorystream.ToArray());         
    }