草庐IT

c# - 传递流的最佳方式是什么

我曾尝试将流作为参数传递,但我不确定哪种方式“最好”,所以想听听您对我的代码示例的意见/建议我个人更喜欢选项3,但我从未在其他任何地方看到这样做过。选项1适用于小流(和已知大小的流)选项2_1和2_2总是会让“处理者”怀疑谁有责任处置/关闭。publicinterfaceISomeStreamHandler{//Option1voidHandleStream(byte[]streamBytes);//Option2voidHandleStream(Streamstream);//Option3voidHandleStream(FuncopenStream);}publicinterfa

c# - 推荐工作流应用程序的设计模式

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭上个月。Improvethisquestion我正在开发一个应用程序,用户可以在其中执行任务/工作流。每个任务都由要执行的操作队列组成。我希望能够在工作流启动后获得用户输入。示例:任务开始Action1开始Action1结束Action2开始Action2结束Action3需要用户输入(UI打开窗口获取用户输入)Action3获取用户输入Action3开始Action3结束任务结束我正在用C#开发这个,我知道WorkflowFound

c# - 文件流打开的 FileSystemWatcher 触发器

我有一个filesystemwatcher,它会在文件被修改时触发一个事件。一旦锁定被删除,我想从该文件中读取。目前我只是试图在事件被触发后打开文件,当复制一个大文件时,文件锁在事件发送后会保持一段时间,防止文件被打开以进行读取访问。有什么建议吗? 最佳答案 这个实际上有点麻烦,除非自从我上次不得不处理它以来问题空间发生了显着变化。最简单的方法是简单地尝试打开文件,捕获生成的IOException,如果文件被锁定,则将其添加到队列中以供稍后检查。您不能只尝试处理传入的每个文件,因为在各种情况下都会为同一个文件生成多个事件,因此在每个

c# - SevenZipSharp - 压缩内存流

我正在使用SevenZipSharp将文件压缩成zip文件。有没有办法使用它从内存流创建zip(意思是,先将文件加载到内存流中)?谢谢,玛雅人。 最佳答案 我将SevenZipSharp与流一起使用,没有任何问题。SevenZip.SevenZipCompressorcompressor=newSevenZip.SevenZipCompressor();compressor.CompressionMethod=SevenZip.CompressionMethod.Lzma2;compressor.CompressionLevel=S

c# - 在 C# 中替换流中的字符串(不覆盖原始文件)

我有一个文件,我正在将其打开到流中并传递给另一个方法。但是,我想在将流传递给其他方法之前替换文件中的字符串。所以:stringpath="C:/...";Streams=newFileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);//needtoreplacealloccurrencesof"John"inthefileto"Jack"here.CallMethod(s);不应修改原始文件,只能修改流。最简单的方法是什么?谢谢... 最佳答案 如果您只是按行读入文

c# - 将 ionic Zip 读取为内存流 C#

我正在使用Ionic.Zip通过这种方法将ZipFile提取到内存流:privateMemoryStreamGetReplayZipMemoryStream(){MemoryStreamzipMs=newMemoryStream();using(ZipFilezip=ZipFile.Read(myFile.zip)){foreach(ZipEntryzipEntryinzip){if(zipEntry.FileName.StartsWith("Aligning")||zipEntry.FileName.StartsWith("Sensing")){zipEntry.Extract(zi

c# - 谁应该负责关闭流

我正在编写一个创建文件“目录”的应用程序,这些文件可以与其他元数据文件(例如附件和缩略图)一起归属。我正在尝试将目录的接口(interface)抽象到目录的消费者不需要了解用于存储文件的底层文件系统的程度。所以我创建了一个名为IFileSystemAdaptor的接口(interface),如下所示。publicinterfaceIFileSystemAdaptor:IDisposable{voidWriteFileData(stringfileName,Streamdata);StreamReadFileData(stringfilename);voidDeleteFileData(

c# - 为什么处理 StreamReader 会使流不可读?

这个问题在这里已经有了答案:CanyoukeepaStreamReaderfromdisposingtheunderlyingstream?(9个回答)关闭7年前。我需要从头到尾读取流两次。但是下面的代码抛出一个ObjectDisposedException:Cannotaccessaclosedfile异常。stringfileToReadPath=@"";using(FileStreamfs=newFileStream(fileToReadPath,FileMode.Open)){using(StreamReaderreader=newStreamReader(fs)){strin

c# - 文件流到字节 [] : Windows XP vs Windows 8

我最近不得不写一些代码:UI取一个文件(图片)转换为`byte[]上传byte[]到网站(使用HttpWebRequest。ContentType是multipart/form-data)网站然后读取流,使用我随文件发送的参数,存储byte[]在数据库中。此图像随后会在报告中使用,用户可以随时下载该图像。在我们开始在WindowsXP机器上测试它之前,它运行良好。每当我从XP电脑上传任何图像时,图像都不会显示。经过一些调试和测试并编写此multipart/form-data到一个文本文件,我看到byte[]WindowsXP与Windows8(甚至7)上的文件不同。生成的文件大小也不同

何为输入流,何为输出流,何为缓冲流

在沈阳华清远见的学习之输入输出流~文章目录前言输入流输出流文件复制缓冲流总结前言    流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流,它是java中比较重要的知识点,无论是面试考试,还是实际工作中,这都是经常能够看到的身影,所以今天我写下这篇文章,希望各位看官可以更好地了解流的相关知识。1、输入流1.1字节输入流(InputStream)        字节流处理单元为1个字节,操作字节和字节数组。packagecom.hqyj.test;importjava.io.File;importjava.io.FileInputStr