C# BufferedStream.Read的代码示例
通过代码示例来学习C# BufferedStream.Read方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
BufferedStream.Read是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的BufferedStream.Read() 已经帮大家高亮显示了,大家可以重点学习BufferedStream.Read() 方法的写法,从而快速掌握该方法的应用。
BufferedStream.Read的代码示例1 - ScanThisShit()
using System.IO; private unsafe List
ScanThisShit(FlacMetadataStreamInfo streamInfo) { Stream stream = _stream; //if (!(stream is BufferedStream)) // stream = new BufferedStream(stream); byte[] buffer = new byte[BufferSize]; stream.Position = 4; //fLaC //skip the metadata FlacMetadata.SkipMetadata(stream); List frames = new List (); FlacFrameInformation frameInfo = new FlacFrameInformation(); frameInfo.IsFirstFrame = true; FlacFrameHeader baseHeader = null; while (true) { int read = stream.Read(buffer, 0, buffer.Length); if (read <= FlacConstant.FrameHeaderSize) break; fixed (byte* bufferPtr = buffer) { byte* ptr = bufferPtr; //for (int i = 0; i < read - FlacConstant.FrameHeaderSize; i++) while ((bufferPtr + read - FlacConstant.FrameHeaderSize) > ptr) { if (*ptr++ == 0xFF && (*ptr & 0xF8) == 0xF8) //check sync { byte* ptrSafe = ptr; ptr--; FlacFrameHeader tmp; if (IsFrame(ref ptr, streamInfo, out tmp)) { FlacFrameHeader header = tmp; if (frameInfo.IsFirstFrame) { baseHeader = header; frameInfo.IsFirstFrame = false; } if (baseHeader != null && baseHeader.IsFormatEqualTo(header)) { frameInfo.StreamOffset = stream.Position - read + ((ptrSafe - 1) - bufferPtr); frameInfo.Header = header; frames.Add(frameInfo); frameInfo.SampleOffset += header.BlockSize; } else { ptr = ptrSafe; } } else { ptr = ptrSafe; } } } } stream.Position -= FlacConstant.FrameHeaderSize; } return frames; }
开发者ID:filoe,项目名称:cscore,代码行数:73,代码来源:FlacPreScan.cs
在ScanThisShit()方法中,BufferedStream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
BufferedStream.Read的代码示例2 - RestoreAll()
using System.IO; ///
从指定压缩文件恢复一批数据到目标库 /// zip压缩文件 /// 数据表。为空时从压缩包读取xml模型文件 /// 是否设置数据表模型,自动建表 ///public IDataTable[] RestoreAll(String file, IDataTable[] tables = null, Boolean setSchema = true) { if (file.IsNullOrEmpty()) throw new ArgumentNullException(nameof(file)); //if (tables == null) throw new ArgumentNullException(nameof(tables)); var file2 = file.GetFullPath(); if (!File.Exists(file2)) return null; using var span = Tracer?.NewSpan("db:RestoreAll", file); using var fs = new FileStream(file2, FileMode.Open); using var zip = new ZipArchive(fs, ZipArchiveMode.Read, true, Encoding.UTF8); // 备份架构 if (tables == null) { var entry = zip.Entries.FirstOrDefault(e => e.Name.EndsWithIgnoreCase(".xml")); if (entry != null) { using var ms = entry.Open(); tables = DAL.Import(ms.ToStr()).ToArray(); } } WriteLog("恢复[{0}]从文件 {1}。数据表:{2}", Dal.ConnName, file2, tables?.Join(",", e => e.Name)); if (setSchema) Dal.SetTables(tables); try { foreach (var item in tables) { var entry = zip.GetEntry(item.Name + ".table"); if (entry != null && entry.Length > 0) { try { using var ms = entry.Open(); using var bs = new BufferedStream(ms); Restore(bs, item); } catch (Exception ex) { if (!IgnoreError) throw; XTrace.WriteException(ex); } } } } catch (Exception ex) { span?.SetError(ex, null); throw; } return tables; }
开发者ID:NewLifeX,项目名称:X,代码行数:64,代码来源:DbPackage.cs
在RestoreAll()方法中,BufferedStream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
BufferedStream.Read的代码示例3 - Store()
using System.IO; private int Store(Stream inStream) { int bigBlockSize = POIFSConstants.BIG_BLOCK_MINIMUM_DOCUMENT_SIZE; //BufferedStream bis = new BufferedStream(stream, bigBlockSize + 1); //bis.mark(bigBlockSize); //// Buffer the contents into memory. This is a bit icky... //// TODO Replace with a buffer up to the mini stream size, then streaming write //byte[] contents; //if (stream is MemoryStream) //{ // MemoryStream bais = (MemoryStream)stream; // contents = new byte[bais.Length]; // bais.Read(contents, 0, contents.Length); //} //else //{ // MemoryStream baos = new MemoryStream(); // IOUtils.Copy(stream, baos); // contents = baos.ToArray(); //} // Do we need to store as a mini stream or a full one? if (inStream.Length < bigBlockSize) { _stream = new NPOIFSStream(_filesystem.GetMiniStore()); _block_size = _filesystem.GetMiniStore().GetBlockStoreBlockSize(); } else { _stream = new NPOIFSStream(_filesystem); _block_size = _filesystem.GetBlockStoreBlockSize(); } // start from the beginning //bis.Seek(0, SeekOrigin.Begin); // Store it Stream outStream = _stream.GetOutputStream(); byte[] buf = new byte[1024]; int length = 0; //for (int readBytes; (readBytes = bis.Read(buf, 0, buf.Length)) != 0; length += readBytes) //{ // outStream.Write(buf, 0, readBytes); //} for (int readBytes = 0; ; ) { readBytes = inStream.Read(buf, 0, buf.Length); if (readBytes <= 0) break; length += readBytes; outStream.Write(buf, 0, readBytes); } outStream.Close(); return length; }
开发者ID:dotnetcore,项目名称:NPOI,代码行数:60,代码来源:NPOIFSDocument.cs
在Store()方法中,BufferedStream的代码示例类中的Read的代码示例方法一共出现了3次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的BufferedStream.Read方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。