C# Stream.Read的代码示例
通过代码示例来学习C# Stream.Read方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
Stream.Read是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的Stream.Read() 已经帮大家高亮显示了,大家可以重点学习Stream.Read() 方法的写法,从而快速掌握该方法的应用。
Stream.Read的代码示例1 - LoadDocumentWithStream()
using System.IO; public static void LoadDocumentWithStream() { using( var fs = new FileStream( DocumentSample.DocumentSampleResourcesDirectory + @"First.docx", FileMode.Open, FileAccess.Read, FileShare.Read ) ) { using( var doc = DocX.Load( fs ) ) { // Add a title doc.InsertParagraph( 0, "Load Document with Stream", false ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Insert a Paragraph into this document. var p = doc.InsertParagraph(); // Append some text and add formatting. p.Append( "A small paragraph was added." ); doc.SaveAs( DocumentSample.DocumentSampleOutputDirectory + @"LoadDocumentWithStream.docx" ); } } }
开发者ID:xceedsoftware,项目名称:DocX,代码行数:21,代码来源:DocumentSample.cs
在LoadDocumentWithStream()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例2 - Main()
using System.IO; public static void Main(string[] args) { ArgumentParser _parser = new ArgumentParser(args); if (args.Length <= 0 || _parser.GetOrDefault("h", "help") == "true") { Help(); } if (_parser.GetOrDefault("f", "null") != "null") { _pePath = _parser.GetOrDefault("f", "null"); _encKey = _parser.GetOrDefault("e", "null"); _pid = _parser.GetOrDefault("pid", "null"); if (_pePath == "null") Help(); if (_pid == "null") Help(); } else { Help(); } if (!File.Exists(_pePath)) Help(); Console.WriteLine("[+]:Loading/Parsing PE File '{0}'", _pePath); Console.WriteLine(); byte[] _peBlob = Utils.Read(_pePath); int _dataOffset = Utils.scanPattern(_peBlob, _tag); Console.WriteLine("[+]:Scanning for Shellcode..."); if ( _dataOffset == -1) { Console.WriteLine("Could not locate data or shellcode"); Environment.Exit(0); } Stream stream = new MemoryStream(_peBlob); long pos = stream.Seek(_dataOffset + _tag.Length, SeekOrigin.Begin); Console.WriteLine("[+]: Shellcode located at {0:x2}", pos); byte[] shellcode = new byte[_peBlob.Length - (pos + _tag.Length)]; stream.Read(shellcode, 0, (_peBlob.Length)- ((int)pos + _tag.Length)); byte[] _data = Utils.Decrypt(shellcode, _encKey); stream.Close(); //Execute shellcode (just a basic/vanilla local shellcode injection logic, make sure to CHANGE this and use your custom shellcode loader. //CreateThread //ExecShellcode(_data); //CreateRemoteThread Loader.rexec(Convert.ToInt32(_pid), _data); }
开发者ID:med0x2e,项目名称:SigFlip,代码行数:56,代码来源:Program.cs
在Main()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例3 - GetIndexHash()
using System.IO; private byte[] GetIndexHash() { if (this.shouldHashIndex) { using (Stream fileStream = new FileStream(this.indexLockPath, FileMode.Open, FileAccess.Read, FileShare.Write)) using (HashingStream hasher = new HashingStream(fileStream)) { hasher.CopyTo(Stream.Null); return hasher.Hash; } } return new byte[20]; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:16,代码来源:GitIndexGenerator.cs
在GetIndexHash()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例4 - TryWriteTempFile()
using System.IO; public virtual bool TryWriteTempFile( ITracer tracer, Stream source, string tempFilePath, out long fileLength, out Task flushTask, bool throwOnError = false) { fileLength = 0; flushTask = null; try { Stream fileStream = null; try { fileStream = this.fileSystem.OpenFileStream( tempFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read, callFlushFileBuffers: false); // Any flushing to disk will be done asynchronously StreamUtil.CopyToWithBuffer(source, fileStream); fileLength = fileStream.Length; if (this.Enlistment.FlushFileBuffersForPacks) { // Flush any data buffered in FileStream to the file system fileStream.Flush(); // FlushFileBuffers using FlushAsync // Do this last to ensure that the stream is not being accessed after it's been disposed flushTask = fileStream.FlushAsync().ContinueWith((result) => fileStream.Dispose()); } } finally { if (flushTask == null && fileStream != null) { fileStream.Dispose(); } } this.ValidateTempFile(tempFilePath, tempFilePath); } catch (Exception ex) { if (flushTask != null) { flushTask.Wait(); flushTask = null; } this.CleanupTempFile(this.Tracer, tempFilePath); if (tracer != null) { EventMetadata metadata = CreateEventMetadata(ex); metadata.Add("tempFilePath", tempFilePath); tracer.RelatedWarning(metadata, $"{nameof(this.TryWriteTempFile)}: Exception caught while writing temp file", Keywords.Telemetry); } if (throwOnError) { throw; } else { return false; } } return true; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:77,代码来源:GitObjects.cs
在TryWriteTempFile()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例5 - ReadLooseObjectHeader()
using System.IO; private static bool ReadLooseObjectHeader(Stream input, out long size) { size = 0; byte[] buffer = new byte[5]; input.Read(buffer, 0, buffer.Length); if (!Enumerable.SequenceEqual(buffer, LooseBlobHeader)) { return false; } while (true) { int v = input.ReadByte(); if (v == -1) { return false; } if (v == '\0') { break; } size = (size * 10) + (v - '0'); } return true; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:31,代码来源:GitRepo.cs
在ReadLooseObjectHeader()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例6 - ParseIndex()
using System.IO; private void ParseIndex(Stream indexStream) { byte[] buffer = new byte[40]; indexStream.Position = 0; byte[] signature = new byte[4]; indexStream.Read(signature, 0, 4); if (!Enumerable.SequenceEqual(MagicSignature, signature)) { throw new InvalidDataException("Incorrect magic signature for index: " + string.Join(string.Empty, signature.Select(c => (char)c))); } this.IndexVersion = this.ReadUInt32(buffer, indexStream); if (this.IndexVersion < 2 || this.IndexVersion > 4) { throw new InvalidDataException("Unsupported index version: " + this.IndexVersion); } this.entryCount = this.ReadUInt32(buffer, indexStream); this.tracer.RelatedEvent(EventLevel.Informational, "IndexData", new EventMetadata() { { "Index", this.indexPath }, { "Version", this.IndexVersion }, { "entryCount", this.entryCount } }, Keywords.Telemetry); this.indexEntryOffsets = new Dictionary
((int)this.entryCount, GVFSPlatform.Instance.Constants.PathComparer); int previousPathLength = 0; byte[] pathBuffer = new byte[MaxPathBufferSize]; for (int i = 0; i < this.entryCount; i++) { // See https://github.com/git/git/blob/867b1c1bf68363bcfd17667d6d4b9031fa6a1300/Documentation/technical/index-format.txt#L38 long entryOffset = indexStream.Position; int entryLength = BaseEntryLength; // Skip the next 60 bytes. // 40 bytes encapsulated by IndexEntry but not needed now. // 20 bytes of sha indexStream.Position += 60; ushort flags = this.ReadUInt16(buffer, indexStream); bool isExtended = (flags & ExtendedBit) == ExtendedBit; ushort pathLength = (ushort)(flags & 0xFFF); entryLength += pathLength; bool skipWorktree = false; if (isExtended && (this.IndexVersion > 2)) { ushort extendedFlags = this.ReadUInt16(buffer, indexStream); skipWorktree = (extendedFlags & SkipWorktreeBit) == SkipWorktreeBit; entryLength += 2; } if (this.IndexVersion == 4) { int replaceLength = this.ReadReplaceLength(indexStream); int replaceIndex = previousPathLength - replaceLength; indexStream.Read(pathBuffer, replaceIndex, pathLength - replaceIndex + 1); previousPathLength = pathLength; } else { // Simple paths but 1 - 8 nul bytes as necessary to pad the entry to a multiple of eight bytes int numNulBytes = 8 - (entryLength % 8); indexStream.Read(pathBuffer, 0, pathLength + numNulBytes); } if (!skipWorktree) { // Examine only the things we're not skipping... // Potential Future Perf Optimization: Perform this work on multiple threads. If we take the first byte and % by number of threads, // we can ensure that all entries for a given folder end up in the same dictionary string path = Encoding.UTF8.GetString(pathBuffer, 0, pathLength); this.indexEntryOffsets[path] = entryOffset; } } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:78,代码来源:Index.cs
在ParseIndex()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了3次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例7 - ReadAllBytes()
using System.IO; public override byte[] ReadAllBytes(string path) { MockFile file = this.RootDirectory.FindFile(path); using (Stream s = file.GetContentStream()) { int count = (int)s.Length; int pos = 0; byte[] result = new byte[count]; while (count > 0) { int n = s.Read(result, pos, count); if (n == 0) { throw new IOException("Unexpected end of stream"); } pos += n; count -= n; } return result; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:27,代码来源:MockFileSystem.cs
在ReadAllBytes()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Read的代码示例8 - CanReadHydratedPlaceholderInParallel()
using System.IO; [TestCase, Order(2)] public void CanReadHydratedPlaceholderInParallel() { FileSystemRunner fileSystem = FileSystemRunner.DefaultRunner; string fileName = Path.Combine("GVFS", "GVFS.FunctionalTests", "Tests", "LongRunningEnlistment", "WorkingDirectoryTests.cs"); string virtualPath = this.Enlistment.GetVirtualPathTo(fileName); virtualPath.ShouldBeAFile(fileSystem); // Not using the runner because reading specific bytes isn't common // Can't use ReadAllText because it will remove some bytes that the stream won't. byte[] actualContents = File.ReadAllBytes(virtualPath); Thread[] threads = new Thread[4]; // Readers bool keepRunning = true; for (int i = 0; i < threads.Length; ++i) { int myIndex = i; threads[i] = new Thread(() => { // Create random seeks (seeded for repeatability) Random randy = new Random(myIndex); // Small buffer so we hit the drive a lot. // Block larger than the buffer to hit the drive more const int SmallBufferSize = 128; const int LargerBlockSize = SmallBufferSize * 10; using (Stream reader = new FileStream(virtualPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, SmallBufferSize, false)) { while (keepRunning) { byte[] block = new byte[LargerBlockSize]; // Always try to grab a full block (easier for asserting) int position = randy.Next((int)reader.Length - block.Length - 1); reader.Position = position; reader.Read(block, 0, block.Length).ShouldEqual(block.Length); block.ShouldEqual(actualContents, position, block.Length); } } }); threads[i].Start(); } Thread.Sleep(2500); keepRunning = false; for (int i = 0; i < threads.Length; ++i) { threads[i].Join(); } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:58,代码来源:MultithreadedReadWriteTests.cs
在CanReadHydratedPlaceholderInParallel()方法中,Stream的代码示例类中的Read的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的Stream.Read方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。