C# StreamReader.ReadLine的代码示例

通过代码示例来学习C# StreamReader.ReadLine方法

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


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

StreamReader.ReadLine的代码示例1 - CanDeleteHydratedFilesWhileTheyAreOpenForWrite()

    using System.IO;

        [TestCase]
        public void CanDeleteHydratedFilesWhileTheyAreOpenForWrite()
        {
            FileSystemRunner fileSystem = FileSystemRunner.DefaultRunner;
            string fileName = "GVFS.sln";
            string virtualPath = this.Enlistment.GetVirtualPathTo(fileName);

            virtualPath.ShouldBeAFile(fileSystem);

            using (Stream stream = new FileStream(virtualPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete))
            using (StreamReader reader = new StreamReader(stream))
            {
                // First line is empty, so read two lines
                string line = reader.ReadLine() + reader.ReadLine();
                line.Length.ShouldNotEqual(0);

                File.Delete(virtualPath);
                this.VerifyExistenceAfterDeleteWhileOpen(virtualPath, fileSystem);

                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine("newline!");
                    writer.Flush();
                    this.VerifyExistenceAfterDeleteWhileOpen(virtualPath, fileSystem);
                }
            }

            virtualPath.ShouldNotExistOnDisk(fileSystem);
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:31,代码来源:BasicFileSystemTests.cs

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

StreamReader.ReadLine的代码示例2 - ParseDiffFile()

    using System.IO;

        public void ParseDiffFile(string filename)
        {
            using (ITracer activity = this.tracer.StartActivity("PerformDiff", EventLevel.Informational))
            {
                using (StreamReader file = new StreamReader(File.OpenRead(filename)))
                {
                    while (!file.EndOfStream)
                    {
                        this.EnqueueOperationsFromDiffTreeLine(activity, file.ReadLine());
                    }
                }

                this.FlushStagedQueues();
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:17,代码来源:DiffHelper.cs

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

StreamReader.ReadLine的代码示例3 - TryLoadFromDisk()

    using System.IO;

        /// An optional callback to be run as soon as the fileLock is taken
        protected bool TryLoadFromDisk(
            TryParseAdd tryParseAdd,
            TryParseRemove tryParseRemove,
            Action add,
            out string error,
            Action synchronizedAction = null)
        {
            lock (this.fileLock)
            {
                try
                {
                    if (synchronizedAction != null)
                    {
                        synchronizedAction();
                    }

                    this.fileSystem.CreateDirectory(this.dataDirectoryPath);

                    this.OpenOrCreateDataFile(retryUntilSuccess: false);

                    if (this.collectionAppendsDirectlyToFile)
                    {
                        this.RemoveLastEntryIfInvalid();
                    }

                    long lineCount = 0;

                    this.dataFileHandle.Seek(0, SeekOrigin.Begin);
                    StreamReader reader = new StreamReader(this.dataFileHandle);
                    Dictionary parsedEntries = new Dictionary();
                    while (!reader.EndOfStream)
                    {
                        lineCount++;

                        // StreamReader strips the trailing /r/n
                        string line = reader.ReadLine();
                        if (line.StartsWith(RemoveEntryPrefix))
                        {
                            TKey key;
                            if (!tryParseRemove(line.Substring(RemoveEntryPrefix.Length), out key, out error))
                            {
                                error = string.Format("{0} is corrupt on line {1}: {2}", this.GetType().Name, lineCount, error);
                                return false;
                            }

                            parsedEntries.Remove(key);
                        }
                        else if (line.StartsWith(AddEntryPrefix))
                        {
                            TKey key;
                            TValue value;
                            if (!tryParseAdd(line.Substring(AddEntryPrefix.Length), out key, out value, out error))
                            {
                                error = string.Format("{0} is corrupt on line {1}: {2}", this.GetType().Name, lineCount, error);
                                return false;
                            }

                            parsedEntries[key] = value;
                        }
                        else
                        {
                            error = string.Format("{0} is corrupt on line {1}: Invalid Prefix '{2}'", this.GetType().Name, lineCount, line[0]);
                            return false;
                        }
                    }

                    foreach (KeyValuePair kvp in parsedEntries)
                    {
                        add(kvp.Key, kvp.Value);
                    }

                    if (!this.collectionAppendsDirectlyToFile)
                    {
                        this.CloseDataFile();
                    }
                }
                catch (IOException ex)
                {
                    error = ex.ToString();
                    this.CloseDataFile();
                    return false;
                }
                catch (Exception e)
                {
                    this.CloseDataFile();
                    throw new FileBasedCollectionException(e);
                }

                error = null;
                return true;
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:95,代码来源:FileBasedCollection.cs

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

StreamReader.ReadLine的代码示例4 - GetPersistedValue()

    using System.IO;

        private static string GetPersistedValue(string dotGVFSRoot, string key)
        {
            string metadataPath = Path.Combine(dotGVFSRoot, RepoMetadataName);
            string json;
            using (FileStream fs = new FileStream(metadataPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
            using (StreamReader reader = new StreamReader(fs))
            {
                while (!reader.EndOfStream)
                {
                    json = reader.ReadLine();
                    json.Substring(0, 2).ShouldEqual("A ");

                    KeyValuePair kvp = JsonConvert.DeserializeObject>(json.Substring(2));
                    if (kvp.Key == key)
                    {
                        return kvp.Value;
                    }
                }
            }

            return null;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:24,代码来源:GVFSHelpers.cs

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

StreamReader.ReadLine的代码示例5 - ServiceLogContainsUpgradeMessaging()

    using System.IO;

        private bool ServiceLogContainsUpgradeMessaging()
        {
            // This test checks for the upgrade timer start message in the Service log
            // file. GVFS.Service should schedule the timer as it starts.
            string expectedTimerMessage = "Checking for product upgrades. (Start)";
            string serviceLogFolder = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
                "GVFS",
                GVFSServiceProcess.TestServiceName,
                "Logs");
            DirectoryInfo logsDirectory = new DirectoryInfo(serviceLogFolder);
            FileInfo logFile = logsDirectory.GetFiles()
                .OrderByDescending(f => f.LastWriteTime)
                .FirstOrDefault();

            if (logFile != null)
            {
                using (StreamReader fileStream = new StreamReader(File.Open(logFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
                {
                    string nextLine = null;
                    while ((nextLine = fileStream.ReadLine()) != null)
                    {
                        if (nextLine.Contains(expectedTimerMessage))
                        {
                            return true;
                        }
                    }
                }
            }

            return false;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:34,代码来源:GVFSUpgradeReminderTests.cs

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

StreamReader.ReadLine的代码示例6 - RetryableReadAllLines()

    using System.IO;

        /// 
        /// Reads the stream until it ends returning each line as a string.
        /// 
        public List RetryableReadAllLines()
        {
            using (StreamReader contentStreamReader = new StreamReader(this.Stream))
            {
                List output = new List();

                while (true)
                {
                    string line;
                    try
                    {
                        if (contentStreamReader.EndOfStream)
                        {
                            break;
                        }

                        line = contentStreamReader.ReadLine();
                    }
                    catch (Exception ex)
                    {
                        // All exceptions potentially from network should be retried
                        throw new RetryableException("Exception while reading stream. See inner exception for details.", ex);
                    }

                    output.Add(line);
                }

                return output;
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:35,代码来源:GitEndPointResponseData.cs

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

StreamReader.ReadLine的代码示例7 - ReadRegistry()

    using System.IO;

        public Dictionary ReadRegistry()
        {
            Dictionary allRepos = new Dictionary(GVFSPlatform.Instance.Constants.PathComparer);

            using (Stream stream = this.fileSystem.OpenFileStream(
                    Path.Combine(this.registryParentFolderPath, RegistryName),
                    FileMode.OpenOrCreate,
                    FileAccess.Read,
                    FileShare.Read,
                    callFlushFileBuffers: false))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string versionString = reader.ReadLine();
                    int version;
                    if (!int.TryParse(versionString, out version) ||
                        version > RegistryVersion)
                    {
                        if (versionString != null)
                        {
                            EventMetadata metadata = new EventMetadata();
                            metadata.Add("Area", EtwArea);
                            metadata.Add("OnDiskVersion", versionString);
                            metadata.Add("ExpectedVersion", versionString);
                            this.tracer.RelatedError(metadata, "ReadRegistry: Unsupported version");
                        }

                        return allRepos;
                    }

                    while (!reader.EndOfStream)
                    {
                        string entry = reader.ReadLine();
                        if (entry.Length > 0)
                        {
                            try
                            {
                                RepoRegistration registration = RepoRegistration.FromJson(entry);

                                string errorMessage;
                                string normalizedEnlistmentRootPath = registration.EnlistmentRoot;
                                if (this.fileSystem.TryGetNormalizedPath(registration.EnlistmentRoot, out normalizedEnlistmentRootPath, out errorMessage))
                                {
                                    if (!normalizedEnlistmentRootPath.Equals(registration.EnlistmentRoot, GVFSPlatform.Instance.Constants.PathComparison))
                                    {
                                        EventMetadata metadata = new EventMetadata();
                                        metadata.Add("registration.EnlistmentRoot", registration.EnlistmentRoot);
                                        metadata.Add(nameof(normalizedEnlistmentRootPath), normalizedEnlistmentRootPath);
                                        metadata.Add(TracingConstants.MessageKey.InfoMessage, $"{nameof(this.ReadRegistry)}: Mapping registered enlistment root to final path");
                                        this.tracer.RelatedEvent(EventLevel.Informational, $"{nameof(this.ReadRegistry)}_NormalizedPathMapping", metadata);
                                    }
                                }
                                else
                                {
                                    EventMetadata metadata = new EventMetadata();
                                    metadata.Add("registration.EnlistmentRoot", registration.EnlistmentRoot);
                                    metadata.Add("NormalizedEnlistmentRootPath", normalizedEnlistmentRootPath);
                                    metadata.Add("ErrorMessage", errorMessage);
                                    this.tracer.RelatedWarning(metadata, $"{nameof(this.ReadRegistry)}: Failed to get normalized path name for registed enlistment root");
                                }

                                if (normalizedEnlistmentRootPath != null)
                                {
                                    allRepos[normalizedEnlistmentRootPath] = registration;
                                }
                            }
                            catch (Exception e)
                            {
                                EventMetadata metadata = new EventMetadata();
                                metadata.Add("Area", EtwArea);
                                metadata.Add("entry", entry);
                                metadata.Add("Exception", e.ToString());
                                this.tracer.RelatedError(metadata, "ReadRegistry: Failed to read entry");
                            }
                        }
                    }
                }
            }

            return allRepos;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:83,代码来源:RepoRegistry.cs

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

StreamReader.ReadLine的代码示例8 - WriteExtraSkinningInfo()

    using System.IO;

        //Extra skin data based on https://github.com/Sage-of-Mirrors/SuperBMD/blob/ce1061e9b5f57de112f1d12f6459b938594664a0/SuperBMDLib/source/Model.cs#L193
        //Todo this doesn't quite work yet
        //Need to adjust all mesh name IDs so they are correct
        private void WriteExtraSkinningInfo(string FileName, Scene outScene, List Meshes)
        {
            StreamWriter test = new StreamWriter(FileName + ".tmp");
            StreamReader dae = File.OpenText(FileName);

            int geomIndex = 0;
            while (!dae.EndOfStream)
            {
                string line = dae.ReadLine();

                /* if (line == "  ")
                 {
                     AddControllerLibrary(outScene, test);
                     test.WriteLine(line);
                     test.Flush();
                 }
                 else if (line.Contains("", $" sid=\"{ name }\" type=\"JOINT\">");
                     test.WriteLine(jointLine);
                     test.Flush();
                 }
                 else if (line.Contains(""))
                 {
                     foreach (Mesh mesh in outScene.Meshes)
                     {
                         test.WriteLine($"      ");

                         test.WriteLine($"       ");
                         test.WriteLine("        #skeleton_root");
                         test.WriteLine("        ");
                         test.WriteLine("         ");
                         test.WriteLine($"          ");
                         test.WriteLine("         ");
                         test.WriteLine("        ");
                         test.WriteLine("       ");

                         test.WriteLine("      ");
                         test.Flush();
                     }

                     test.WriteLine(line);
                     test.Flush();
                 }*/
                if (line.Contains(" ");
                    test.Flush();

                    geomIndex++;
                }
                else
                {
                    test.WriteLine(line);
                    test.Flush();
                }

                /*    else if (line.Contains("", "");
                        test.WriteLine(matLine);
                        test.Flush();
                    }*/

            }

            test.Close();
            dae.Close();

            File.Copy(FileName + ".tmp", FileName, true);
            File.Delete(FileName + ".tmp");
        }
    

开发者ID:KillzXGaming,项目名称:Switch-Toolbox,代码行数:84,代码来源:AssimpSaver.cs

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

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