有没有一种方法可以将字节数组转换为ADODB.Stream?

时间:2019-12-26 06:25:00

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

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

This is the documentation for the method i want to call

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

1 个答案:

答案 0 :(得分:0)

有两种可能的解决方案。

方法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变量,并保存了与原始“字节”字节数组相同的数据。