【问题标题】:Is there a way to convert byte array to ADODB.Stream?有没有办法将字节数组转换为 ADODB.Stream?
【发布时间】:2020-04-16 11:18:29
【问题描述】:

我正在使用旧的 Resume 解析器系统,该系统使用 ProcessStream(ref Stream oStream) 方法,其中 Stream 的类型为 ADODB.Stream。我有一个字节数组,我想转换为这个流,但我做不到。 我尝试将字节数组转换为IO Stream,然后将其转换为 ADODB.Stream,但这也不起作用。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: c# asp.net vb.net adodb


    【解决方案1】:

    有两种可能的解决方案。

    方法一将数据从文件加载到ADODB.Stream。

    [TestMethod]
    public void Test1()
    {
        String someString = "Sample string";
        Byte[] bytes = Encoding.ASCII.GetBytes(someString);
    
        File.WriteAllBytes("D:\\test.txt", bytes);
    
        ADODB.Stream stream = new ADODB.Stream();
        stream.Open();
        stream.Type = ADODB.StreamTypeEnum.adTypeBinary;
        stream.LoadFromFile("D:\\test.txt");
    
        Byte[] readData = stream.Read(someString.Length);
    
        CollectionAssert.AreEqual(bytes, readData);
    }
    

    方法2将数据从内存字节数组加载到ADODB.Stream。

    [TestMethod]
    public void Test2()
    {
        String someString = "Sample string";
        Byte[] bytes = Encoding.ASCII.GetBytes(someString);
    
        ADODB.Stream stream = new ADODB.Stream();
        stream.Open();
        stream.Type = ADODB.StreamTypeEnum.adTypeBinary;
        stream.Write(bytes);
    
        stream.Position = 0;
    
        Byte[] readData = stream.Read(someString.Length);
    
        CollectionAssert.AreEqual(bytes, readData);
    }
    

    在每个方法结束时,我检查了readData 变量,它保存的数据与原始“字节”字节数组相同。

    【讨论】:

    • 非常感谢:)。我可以用第二种方法做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 2014-03-20
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多