有没有办法将字节数组转换为 ADODB.Stream?
Is there a way to convert byte array to ADODB.Stream?
我正在使用旧的 Resume 解析器系统,该系统使用一种方法 ProcessStream(ref Stream oStream)
,其中 Stream 的类型为 ADODB.Stream
。我有一个字节数组,我想将其转换为该流,但我做不到。
我尝试将字节数组转换为 IO Stream
,然后将其转换为 ADODB.Stream,但这也不起作用。
如有任何帮助,我们将不胜感激。谢谢!
有两种可能的解决方案。
方法 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
变量,它包含与原始 'bytes' 字节数组相同的数据。
我正在使用旧的 Resume 解析器系统,该系统使用一种方法 ProcessStream(ref Stream oStream)
,其中 Stream 的类型为 ADODB.Stream
。我有一个字节数组,我想将其转换为该流,但我做不到。
我尝试将字节数组转换为 IO Stream
,然后将其转换为 ADODB.Stream,但这也不起作用。
如有任何帮助,我们将不胜感激。谢谢!
有两种可能的解决方案。
方法 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
变量,它包含与原始 'bytes' 字节数组相同的数据。