C# BinaryReader.Read的代码示例

通过代码示例来学习C# BinaryReader.Read方法

通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。


BinaryReader.Read是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的BinaryReader.Read() 已经帮大家高亮显示了,大家可以重点学习BinaryReader.Read() 方法的写法,从而快速掌握该方法的应用。

BinaryReader.Read的代码示例1 - ReadCleanupDatabase()

    using System.IO;

        private static Dictionary ReadCleanupDatabase(string databaseFilename)
        {
            Dictionary dbFiles = null;
            if (File.Exists(databaseFilename))
            {
                try
                {
                    // Read database - This is simply a simple binary file containing the list of file and a version number.
                    using (Stream readStream = new FileStream(databaseFilename, FileMode.Open, FileAccess.Read, FileShare.None))
                    using (BinaryReader binReader = new BinaryReader(readStream))
                    {
                        // Validate version number
                        int version = binReader.ReadInt32();
                        if (version == (int)DBVersion.Version)
                        {
                            // Read the list of files.
                            IFormatter formatter = new BinaryFormatter();
                            string dbAsJson = binReader.ReadString();

                            var tmpDbFiles = System.Text.Json.JsonSerializer.Deserialize>(dbAsJson, GetCleanupDatabaseJsonSerializerOptions());
                            dbFiles = tmpDbFiles.ToDictionary(kvp => kvp.Key, kvp => kvp.Value, StringComparer.InvariantCultureIgnoreCase);
                        }
                        else
                        {
                            LogWrite("Warning: found cleanup database in incompatible format v{0}, skipped.", version);
                        }

                        readStream.Close();
                    }
                }
                catch
                {
                    // File is likely corrupted.
                    // This is no big deal except that cleanup won't occur.
                    dbFiles = null;
                }
            }
            return dbFiles;
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:41,代码来源:Util.cs

在ReadCleanupDatabase()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

BinaryReader.Read的代码示例2 - FromStream()

    using System.IO;

        public static ID3v2Footer FromStream(Stream stream)
        {
            if (stream == null) throw new ArgumentNullException("stream");
            if (!stream.CanRead) throw new ArgumentException("stream not readable");
            if (!stream.CanSeek) throw new ArgumentException("stream not seekable");

            BinaryReader reader = new BinaryReader(stream);
            ID3v2Footer footer;

            byte[] buffer = new byte[FooterLength];
            int read = stream.Read(buffer, 0, buffer.Length);
            if (read < 10)
                throw new EndOfStreamException();

            if (buffer[0] == 0x49 && //I
               buffer[1] == 0x44 && //D
               buffer[2] == 0x33)
            {
                footer = new ID3v2Footer();

                footer.Version = (ID3Version)buffer[3];
                footer.RawVersion = new byte[] { buffer[3], buffer[4] };
                footer.Flags = (ID3v2HeaderFlags)buffer[5];

                /*footer.DataLength = buffer[6] * (1 << 21);
                footer.DataLength += buffer[7] * (1 << 14);
                footer.DataLength += buffer[8] * (1 << 7);
                footer.DataLength += buffer[9];*/
                footer.DataLength = ID3Utils.ReadInt32(buffer, 6, true);

                return footer;
            }

            stream.Position -= read;
            return null;
        }
    

开发者ID:filoe,项目名称:cscore,代码行数:38,代码来源:ID3v2Footer.cs

在FromStream()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

BinaryReader.Read的代码示例3 - FromStream()

    using System.IO;

        public static ID3v2Header FromStream(Stream stream)
        {
            if (stream == null) throw new ArgumentNullException("stream");
            if (!stream.CanRead) throw new ArgumentException("stream not readable");
            if (!stream.CanSeek) throw new ArgumentException("stream not seekable");

            BinaryReader reader = new BinaryReader(stream);
            ID3v2Header header;

            byte[] buffer = new byte[HeaderLength];
            int read = stream.Read(buffer, 0, buffer.Length);
            if (read < 10)
                throw new EndOfStreamException();

            if (buffer[0] == 0x49 && //I
               buffer[1] == 0x44 && //D
               buffer[2] == 0x33)
            {
                header = new ID3v2Header();

                header.Version = (ID3Version)buffer[3];
                header.RawVersion = new byte[] { buffer[3], buffer[4] };
                header.Flags = (ID3v2HeaderFlags)buffer[5];

                /*header.DataLength = buffer[6] * (1 << 21);
                header.DataLength += buffer[7] * (1 << 14);
                header.DataLength += buffer[8] * (1 << 7);
                header.DataLength += buffer[9];
                */
                header.DataLength = ID3Utils.ReadInt32(buffer, 6, true);

                return header;
            }

            stream.Position -= read;
            return null;
        }
    

开发者ID:filoe,项目名称:cscore,代码行数:39,代码来源:ID3v2Header.cs

在FromStream()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

BinaryReader.Read的代码示例4 - ReadBuffer()

    using System.IO;
		public static void ReadBuffer(this BinaryReader _this, byte[] buffer, int offset, int count)
		{
			do
			{
				int read = _this.Read(buffer, offset, count);
				if (read == 0)
				{
					throw new Exception($"No data left");
				}
				offset += read;
				count -= read;
			}
			while (count > 0);
		}
    

开发者ID:mafaca,项目名称:UtinyRipper,代码行数:15,代码来源:BinaryReaderExtensions.cs

在ReadBuffer()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

BinaryReader.Read的代码示例5 - Export()

    using System.IO;

		public override void Export(ShaderWriter writer, ref ShaderSubProgram subProgram)
		{
			using (MemoryStream stream = new MemoryStream(subProgram.ProgramData))
			{
				using (BinaryReader reader = new BinaryReader(stream))
				{
					DXDataHeader header = new DXDataHeader();
					header.Read(reader, writer.Version);

					// HACK: since we can't restore UAV info and HLSLcc requires it, process such shader with default exporter
					if (header.UAVs > 0)
					{
						base.Export(writer, ref subProgram);
					}
					else
					{
						byte[] exportData = DXShaderProgramRestorer.RestoreProgramData(reader, writer.Version, ref subProgram);
						WrappedGlExtensions ext = new WrappedGlExtensions();
						ext.ARB_explicit_attrib_location = 1;
						ext.ARB_explicit_uniform_location = 1;
						ext.ARB_shading_language_420pack = 0;
						ext.OVR_multiview = 0;
						ext.EXT_shader_framebuffer_fetch = 0;
						Shader shader = Shader.TranslateFromMem(exportData, WrappedGLLang.LANG_DEFAULT, ext);
						if (shader.OK == 0)
						{
							base.Export(writer, ref subProgram);
						}
						else
						{
							ExportListing(writer, shader.Text);
						}
					}
				}
			}
		}
    

开发者ID:mafaca,项目名称:UtinyRipper,代码行数:38,代码来源:ShaderHLSLccExporter.cs

在Export()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

BinaryReader.Read的代码示例6 - CreateBATBlock()

    using System.IO;
        /**
         * Create a single BATBlock from the byte buffer, which must hold at least
         *  one big block of data to be read.
         */
        public static BATBlock CreateBATBlock(POIFSBigBlockSize bigBlockSize, BinaryReader data)
        {
            // Create an empty block
            BATBlock block = new BATBlock(bigBlockSize);

            // Fill it
            byte[] buffer = new byte[LittleEndianConsts.INT_SIZE];
            for (int i = 0; i < block._values.Length; i++)
            {
                data.Read(buffer,0,buffer.Length);
                block._values[i] = LittleEndian.GetInt(buffer);
            }
            block.RecomputeFree();

            // All done
            return block;
        }
    

开发者ID:dotnetcore,项目名称:NPOI,代码行数:22,代码来源:BATBlock.cs

在CreateBATBlock()方法中,BinaryReader的代码示例类中的Read的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

本文中的BinaryReader.Read方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。