Tag: stream

Composite Stream Wrapper提供部分MemoryStream和完整的原始Stream

有没有人知道一个复合流解决方案,它会将Stream的第一部分预加载到MemoryStream中,并将剩余部分保留为原始Stream,当需要后续部分时将访问它们? 我应该想象一些包装器类将实现Stream接口并透明地处理两个流之间的访问,具体取决于访问哪个部分。 我希望这是以前有人可能解决过的解决方案,也许是为了优化读取大型FileStream的性能。 在我的情况下,我试图解决从SD卡读取大文件的Windows Phone 8错误。 此答案中提供了我试图环绕的问题的更多详细信息: https : //stackoverflow.com/a/17355068/250254

SSH.NET不处理我的shell输入命令

我正在使用SSH.NET从C#中的控制台应用程序连接到我的Raspberry Pi。 我想从我自己的流中发送文本,通过StreamWriter写入它。 问题是它什么也没做。 这就像WriteLine(“ls”)不会产生任何影响。 这是代码: using System; using System.IO; using Renci.SshNet; namespace SSHTest { class Program { static void Main(string[] args) { var ssh = new SshClient(“raspberrypi”, 22, “pi”, “raspberry”); ssh.Connect(); var input = new MemoryStream(); var streamWriter = new StreamWriter(input) { AutoFlush = true }; var shell = ssh.CreateShell(input, Console.OpenStandardOutput(), new MemoryStream()); shell.Start(); […]

MediaElement不从流WP7播放音频

string url = re[“response”][0][“url”].ToString(); MediaElement mm = new MediaElement(); mm.Source = new Uri(url,UriKind.RelativeOrAbsolute); mm.AutoPlay = true; mm.Volume = 0.7; mm.Play(); 但没有变化,adudio没有开始。我怎么能解决这个问题?

iTextSharp – 如何将文档转换为byte

我需要将我在内存中创建的pdf附加到电子邮件中。 附件可以采取流程。 所以我认为我需要将iTextSharp Document对象转换为流。 我怎样才能做到这一点? 我尝试将Document对象序列化为流,但它没有“标记为可序列化”。

如何从资源文件中获取流对象(控制台应用程序/ Windows服务项目)

我正在创建一个Windows服务,我正在尝试访问我添加到资源文件中的一些文件,但我被卡住了,因为我不知道如何访问单个文件。 仅仅为了一些背景信息,这是我到目前为止所做的: 这是一个在调试模式下作为控制台应用程序运行的C#Windows服务应用程序,它可以帮助我进入代码。 我在根目录中添加了一个名为“Resources.resx”的资源文件。 在我的资源文件中,我使用可视化设计器/编辑器添加了一些jpg图像和html文件。 在我将图像和html文件添加到资源文件后,我项目中的一个新文件夹显示为“Resources”,其中包含我添加的所有文件。 在这个新文件夹中,我转到了每个文件的属性,并将Build Action更改为Embedded Resource。 (我不知道这是否有必要。我搜索的一些博客说要试试。) 项目的名称空间称为“MicroSecurity.EmailService”。 为了获取资源文件的名称,我使用了 的GetType()。Assembly.GetManifestResourceNames() 我得到以下内容 GetType()。Assembly.GetManifestResourceNames(){string [2]} string [] [0]“MicroSecurity.EmailService.Services.EmailService.resources”string [1]“MicroSecurity.EmailService.Resources.resources”string 从此我发现“MicroSecurity.EmailService.Resources.resources”是我想要使用的字符串(索引1)。 我使用此代码来获取流对象。 var stream = Assembly.GetExecutingAssembly()。GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources”); 当我在调试期间向此变量添加监视时,我可以看到诸如图像的元数据之类的内容等。 这是我被困的地方。 我想访问名为“logo.jpg”的图像。 这是我正在做的图像,但它不起作用。 var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources.logo.jpg”); 如何从logo.jpg文件中获取流? 更新: 感谢安德鲁,我能够弄清楚。 下面是我为演示项目编写的一些代码,以便研究资源文件如何工作而不是直接嵌入文件。 我希望这有助于其他人澄清差异。 using System; using System.Drawing; using System.IO; using System.Reflection; namespace UsingResourceFiles { public class Program { /// […]

我可以将二进制文件放入stdin吗? C#

与此问题相关的问题用7z加密二进制文件没有文件名? 在C#中我如何将二进制文件放入STDin? 我希望下面的内容可以正常运行,但它不会。 这是有道理的。 那么我如何推送一个byte []数组呢? new BinaryWriter(p.StandardInput.FormatProvider);

CryptoStream可以让基本流打开吗?

我创建了一个MemoryStream ,将它传递给CryptoStream进行写入。 我希望CryptoStream加密,让MemoryStream对我开放,然后读入其他内容。 但是一旦处理掉CryptoStream ,它就会处理MemoryStream 。 CryptoStream可以以某种方式打开基本的MemoryStream吗? using (MemoryStream scratch = new MemoryStream()) { using (AesManaged aes = new AesManaged()) { // // Set some aes parameters, including Key, IV, etc. // ICryptoTransform encryptor = aes.CreateEncryptor(); using (CryptoStream myCryptoStream = new CryptoStream(scratch, encryptor, CryptoStreamMode.Write)) { myCryptoStream.Write(someByteArray, 0, someByteArray.Length); } } // Here, I’m still within […]

为什么我的新XmlTextReader(流)以兆字节为单位读入内存而不是正确流式传输?

当我将XML中的STREAMING转换为XmlReader时,我得到了Out of Memory Exceptions! 查看内存分析器,我们可以看到它一遍又一遍地调用StringBuilder.Append,导致大量128KB缓冲区填充所有内存。 这与“流媒体”相反。 它不应该加载多个4KB缓冲区。

C#Webclient Stream将文件从FTP下载到本地存储

我一直在通过.NET命名空间提供的WebClient对象从FTP服务器下载文件,然后通过BinaryWriter将字节写入实际文件。 一切都很好。 但是,现在,文件的大小已经大大增加,我担心内存限制,所以我想创建一个下载流,创建一个文件流,并逐行读取下载并写入文件。 我很紧张,因为我找不到一个很好的例子。 这是我的最终结果: var request = new WebClient(); // Omitted code to add credentials, etc.. var downloadStream = new StreamReader(request.OpenRead(ftpFilePathUri.ToString())); using (var writeStream = File.Open(toLocation, FileMode.CreateNew)) { using (var writer = new StreamWriter(writeStream)) { while (!downloadStream.EndOfStream) { writer.Write(downloadStream.ReadLine()); } } } 我是否会采用这种不正确/更好的方式/等等?

将short 转换为Stream,可以播放为Audio

所以我所拥有的是一个short []数组,它表示WAV文件的原始数据。 这意味着它不包含通常包含的任何页眉或页脚信息。 为了播放这个音频,我需要将它转换为某种类型的流,不幸的是,这个short []数组中的数据是Int16,并且许多值超过255,因此无法转换为字节且无法转换为流。 有谁知道我怎么能播放这个音频数据?