Byte[],Stream,Ibuffer,IRandomAccessStream等之间的互相转换(rt,8.1可用,部分Sliverlight 8.1可用)

企业级AI平台安全架构:从身份认证到审计追踪的纵深防御实践 在数字化转型浪潮中,企业级AI平台的安全与权限管理已成为核心技术挑战。其核心原理在于构建一套覆盖身份、访问、数据和审计的多层防御体系,通过统一身份管理、最小权限原则和细粒度策略控制,确保平台资源的安全可控。这一体系的技术价值在于,不仅能有效防止数据泄露和资源滥用,更能满足企业合规性要求,为AI模型的训练、推理和数据管理提供可靠基础。在实际应用场景中,无论是金融风控、医疗数据分析还是智能客服系统,都需要通过身份认证与访问控制实现“进不来”,借助数据加密与脱敏确保“拿不走、看不懂”,并依靠全面的审计日志实现操作 阅读详情
全段时间做程序,非要让我从IRandomAccessStream类型转换为Byte[]类型,然后我花了九牛二虎之力搞定,顺便整理了下几种不同类型之间的转换方法。。。
Stream 转IRandomAccessStream
方法一:
  1. byte[] bytes = StreamToBytes(stream);
  2. InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream();
  3. DataWriter datawriter = new DataWriter(memoryStream.GetOutputStreamAt(0));
  4. datawriter.WriteBytes(bytes);
  5. await datawriter.StoreAsync();
复制代码

方法二:
  1. var randomAccessStream = new InMemoryRandomAccessStream();
  2. var outputStream = randomAccessStream.GetOutputStreamAt(0);
  3. await RandomAccessStream.CopyAsync(stream.AsInputStream(), outputStream);
复制代码

IRandomAccessStream 转 Stream 
  1. Stream stream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
复制代码

Ibuffer转Stream
  1. Stream stream = WindowsRuntimeBufferExtensions.AsStream(buffer);
复制代码

Stream转Ibuffer 

  1. MemoryStream memoryStream = new MemoryStream();            
  2. if (stream != null)
  3. {
  4.       byte[] bytes = ReadFully(stream);
  5.       if (bytes != null)
  6.       {
  7.            var binaryWriter = new BinaryWriter(memoryStream);
  8.            binaryWriter.Write(bytes);
  9.        }
  10.   } 
  11. IBuffer buffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
复制代码

Ibuffer转byte[] 
  1. byte[] bytes=WindowsRuntimeBufferExtensions.ToArray(buffer,0,(int)buffer.Length);
复制代码

Byte[]转Ibuffer 
  1. WindowsRuntimeBufferExtensions.AsBuffer(bytes,0,bytes.Length);
复制代码

Ibuffer转IrandomAccessStream 

  1. InMemoryRandomAccessStream inStream = new InMemoryRandomAccessStream();
  2. DataWriter datawriter = new DataWriter(inStream.GetOutputStreamAt(0));
  3. datawriter.WriteBuffer(buffer,0,buffer.Length);
  4. await datawriter.StoreAsync();
复制代码

IrandomAccessStream转Ibuffer 

  1. Stream stream=WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
  2. MemoryStream memoryStream = new MemoryStream();            
  3. if (stream != null)
  4. {
  5.     byte[] bytes = ReadFully(stream);
  6.     if (bytes != null)
  7.     {
  8.         var binaryWriter = new BinaryWriter(memoryStream);
  9.         binaryWriter.Write(bytes);
  10.     }
  11. } 
  12. IBuffer buffer=WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream,0,(int)memoryStream.Length);
复制代码

Stream转byte[]
  1. public static byte[] ConvertStreamTobyte(Stream input)
  2. {
  3. byte[] buffer = new byte[16 * 1024];
  4. using (MemoryStream ms = new MemoryStream())
  5.   {
  6.    int read;
  7.    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
  8.     {
  9.      ms.Write(buffer, 0, read);
  10.     }
  11.    return ms.ToArray();
  12.   }
  13. }
复制代码

byte[]转Stream

  1. public Stream BytesToStream(byte[] bytes)
  2.         {
  3.             Stream stream = new MemoryStream(bytes);
  4.             return stream;
  5.         }
复制代码

Stream转MemoryStream

  1. public static MemoryStream ConvertStreamToMemoryStream(Stream stream)
  2.         { 
  3.             MemoryStream memoryStream = new MemoryStream();
  4.             if (stream != null)
  5.             {
  6.                 byte[] buffer = ReadFully(stream);
  7.                 if (buffer != null)
  8.                 {
  9.                     var binaryWriter = new BinaryWriter(memoryStream);
  10.                     binaryWriter.Write(buffer);
  11.                 } 
  12.             } 
  13.             return memoryStream;
  14.         }
复制代码

IrandomAccessStream转byte[]

  1. Stream stream = WindowsRuntimeStreamExtensions.AsStreamForRead(randomStream.GetInputStreamAt(0));
  2. MemoryStream ms = new MemoryStream();
  3. await stream.CopyToAsync(ms);
  4. byte[] bytes = ms.ToArray();
复制代码
C#中BufferedStream类详解与示例 提供缓冲区,减少对底层流的直接访问。提高读写操作的速度,尤其是在处理大量数据时。可以配置缓冲区大小,以适应不同的应用需求。优化对文件、网络资源等底层流的读写性能。作为其他非缓冲流(如FileStream、NetworkStream)的包装器,增加缓冲功能。 阅读详情

相关推荐

k8s重装1.28.2+calico+踩坑收集+InPlacePodVerticalScaling

它提供了从镜像构建(通过 Dockerfile)、镜像管理(上传、下载、存储等)、容器创建、运行、网络配置(可以为容器分配自定义的网络,如 bridge 网络、host 网络等)到容器编排(通过 Docker Compose 可以简单地编排多个容器的启动和关联关系)等一整套完整的解决方案。它的核心功能是启动和管理容器的生命周期。sudo apt update这个可以经常用,是来更新软件包的,它不下载,所以没风险,但是经常会报错,别问,问就是某种强大的力量,所以用镜像或者代理或者巴拉巴拉。

SsjjsS2019的博客 2553

IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换

/** 用于实现 IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换的帮助类*/ using System;using System.IO;using System.Runtime.InteropServices.WindowsRuntime;using System.Threading.Tasks;using Windows.Storag...

weixin_34148508的博客 331

JDK8升级JDK17过程中遇到的那些坑

JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以及虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。

BASK2312的博客 6685

java中byte[]、buffer、string转换

将原数组数据拷贝到目的数组 System.arraycopy(src, Srcposition, dst, DstPosition,dstLength); 将字节数组转换成字节缓冲区 ByteBuffer buffer = ByteBuffer.wrap(Bytes[]); 目前buffer存在的位置与buffer的容量 buffer.position() 将buffer读取

B-Tree 1万+

CANoe基础讲解01:从零开始使用CANoe轻松搭建你的第一个CAN网络

本文是一篇CANoe软件入门实操指南,逐步演示了如何从零创建并运行一个CAN FD仿真工程。内容包括:启动软件、配置硬件通道与网络、加载DBC数据库、使用CAPL编写仿真节点发送CAN报文,最终启动测量并在Trace窗口中查看通信结果。通过七个清晰步骤,帮助初学者快速掌握CANoe基本操作,完成首个可运行的仿真网络搭建

车载网络小D的博客 1573

TikTok Shop API密钥获取与PHP实战对接指南

本文详细介绍了TikTok Shop API密钥的获取流程与PHP实战对接方法。从开发者后台创建应用、获取核心的API密钥开始,逐步解析OAuth 2.0授权机制,并提供了完整的PHP封装类示例,涵盖签名生成、API调用、令牌刷新及错误处理,帮助开发者快速实现与TikTok Shop的数据对接与自动化操作。

weixin_29300241的博客 402

c# 从地址拷贝byte_如何在 C# 中使用 Buffer

原标题:如何在 C# 中使用 Buffer缓冲区 是内存中的一组字节序列, 缓冲 是用来处理落在内存中的数据,.NET 缓冲 指的是处理 非托管内存 中的数据,用 byte[] 来表示。当你想把数据写入到内存或者你想处理非托管内存中的数据,可以使用 .NET 提供的 System.Buffer 类,这篇文章就来讨论如何使用 Buffer。Buffer 下的方法列表Buffer 类包含了下面几个方法...

weixin_27011811的博客 755

AI算力网络与通信领域流量分析:优化策略探讨_副本

今天的AI就像一个"超级吃货",每天要"吃"掉海量数据、“消耗"巨量算力——训练一个千亿参数的大模型,可能需要上万块GPU同时工作数周,其间产生的数据传输量足以填满数百万个1TB硬盘。这些GPU和计算节点通过网络连接形成"AI算力网络”,而数据在节点间的流动就是"通信流量"。如果把算力比作AI的"肌肉",那流量就是"血液"——血液不通畅,肌肉再强也使不上劲。

AI天才研究院 1198

浅谈ByteBuffer转换成byte[]时遇到的问题

  有些时候我们要把ByteBuffer转换成byte[]来使用。于是很多时候会用以下代码来转换;   ByteBuffer buf;   .....(一些往buffer写数据的操作)   byte[] bs= new byte[buf.capacity()];  //想把buf里所有的byte都拿出来   buf.get(bs);   感觉一切都正常,运行后会发现BufferUnder...

weixin_34101784的博客 3287

拆开它的“身体”,看懂割草机器人的五层系统架构

这篇文章深入解析了智能割草机器人的五层系统架构。机械层采用铝合金一体式车架和独立悬挂刀盘系统;电子层配备双处理器和多种传感器;固件层实现毫秒级安全响应;算法层融合多种定位技术实现厘米级精度;云服务层提供远程管理和AI优化。这套系统通过精密协同实现了智能割草的全流程闭环,展现了从机械结构到云端智能的完整技术栈,为户外智能设备设立了新的技术标杆。

智能硬件研发,欢迎交流 198

Python 陌生代码库阅读之道:从零起步到一周掌控 5 万行老项目的实战策略

文中特别强调"自顶向下+画图+注释"的基础阅读心法,并提供了具体的代码示例和命令行技巧。对于大型项目,建议先建立核心流程的骨架认知,再逐步填充细节,同时注重文档化和测试覆盖率的提升。 掌握这套方法后,开发者可以将陌生代码库的阅读效率提升3倍以上,在一周内建立起对5万行级别项目的整体掌控力。

铭渊老黄 506

Windows 8 学习笔记(八)--各种流之间的转换

今天在Stream与IrandomAccessStream之间转换时,感觉很纠结,所以干脆先把想到的一些场景都罗列了一下,希望下次再用的时候就不用这么毛手毛脚的了。。。 Stream转IRandomAccessStream 方法一: byte[] bytes = StreamToBytes(stream); InMemoryRandomAccessStream memor...

mmdev 170

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改

宁波阿成的博客 847

ByteBuf 转为byte[] 不要用array()不对的。 JAVA 用内部类解决接口 交叉调用问题 2个串口实现透传,会相互在对方的接收接口实现里调用发送。

内部类在Java中提供了一种有效的方式来组织和封装代码,允许类之间实现更紧密的关系。不同类型的内部类适用于不同的场景,可以根据具体需求选择适合的内部类类型。

chenhao0568的专栏 2337

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WinRT的IBuffer

ReadAsync要用到的IBuffer表示一个字节数组,接口如下: public interface IBuffer { UInt32 Capacity { get; } // Maximum size of the buffer (in bytes) UInt32 Length { get; set; } // Number of bytes currently in use by the

gnimgnot 1876

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

String和byte[]之间的相互转换

 byte[] buf = new byte[4];buf[0] = R;buf[1] = a;buf[2] = r;buf[3] = e;String str = new String(buf);System.out.println(str);StringBuffer sb = new StringBuffer(str);sb.setCharA

Rare's Tech-Blog 1293

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

2019-1-29-UWP-IRandomAccessStream-与-Stream-互转

title author date CreateTime categories UWP IRandomAccessStream 与 Stream 互转 lindexi 2019-01-29 16:33:30 +0800 2018-09-10 09:32:11 +0800 UWP ...

lindexi 565

UWP IRandomAccessStream 与 Stream 互转

本文告诉大家如何将 IRandomAccessStream 和 Stream 互转

lindexi 1064

WinRT C++ byte* 转为 Ibuffer^(笔记)

 Microsoft::WRL::Details::MakeAndInitialize(&nativeBuffer, (byte *)lpBuffer, nNumberOfBytes);    auto iinspectable = (IInspectable *)reinterpret_cast(nativeBuffer.Get());    IBuffer ^buffer = rei

u010595179的博客 864

【Win 10应用开发】使用RichEditBox控件应注意的问题

RichEditBox控件支持对多格式文本进行编辑,一般的文本输入控件可以使用TextBox,不过,如果希望编辑格式较为复杂的文本,就可以考虚使用RichEditBox控件。   RichEditBox控件中正在编辑的文本是由Document属性公开的,它是一个ITextDocument接口,该接口没有公开实现类型,只能通过RichEditBox类的Document属性来获取其实例,Win A...

weixin_34032621的博客 219

Windows 8 学习笔记--各种流之间的转换

Stream 转IRandomAccessStream 方法一: byte[] bytes = StreamToBytes(stream); InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream(); DataWriter datawrit

rui0720的专栏 817

UWP开发细节记录:IStream 和 IRandomAccessStream^ 以及 IMFByteStream 互转

IStream 和IRandomAccessStream^ 互转   IRandomAccessStream^ -->IStream:CreateStreamOverRandomAccessStream   IStream -->IRandomAccessStream^: CreateRandomAccessStreamOverStream IStream ...

weixin_30617737的博客 208

Object,byte[],ByteBuffer之间的转换。

新版本 package cn.vicky.chapt13; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStrea

噬日者 1万+
上一篇: C/C++ sizeof 注意事项
下一篇: 浅谈NGUI的渲染原理
HFKuAng
博客等级 码龄11年 70粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值