diff options
| author | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2021-02-28 10:12:14 +0000 |
|---|---|---|
| committer | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2021-02-28 10:12:14 +0000 |
| commit | 80ca3da55c7d8ec9cf06a619fc895c1e427c45ff (patch) | |
| tree | 95f5ddce05f6ede680b815cfe5dbf413ce6fb352 /MediaBrowser.Common/Extensions/StreamExtensions.cs | |
| parent | 1d6f489f17919e557987b2616048dc8def790f43 (diff) | |
| parent | f8c9c37c29efa6d42b79d6db3aa8a69a60106765 (diff) | |
Merge remote-tracking branch 'upstream/master' into FixFor5280Part2
Diffstat (limited to 'MediaBrowser.Common/Extensions/StreamExtensions.cs')
| -rw-r--r-- | MediaBrowser.Common/Extensions/StreamExtensions.cs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Extensions/StreamExtensions.cs b/MediaBrowser.Common/Extensions/StreamExtensions.cs new file mode 100644 index 000000000..cd77be7b2 --- /dev/null +++ b/MediaBrowser.Common/Extensions/StreamExtensions.cs @@ -0,0 +1,51 @@ +#nullable enable + +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace MediaBrowser.Common.Extensions +{ + /// <summary> + /// Class BaseExtensions. + /// </summary> + public static class StreamExtensions + { + /// <summary> + /// Reads all lines in the <see cref="Stream" />. + /// </summary> + /// <param name="stream">The <see cref="Stream" /> to read from.</param> + /// <returns>All lines in the stream.</returns> + public static string[] ReadAllLines(this Stream stream) + => ReadAllLines(stream, Encoding.UTF8); + + /// <summary> + /// Reads all lines in the <see cref="Stream" />. + /// </summary> + /// <param name="stream">The <see cref="Stream" /> to read from.</param> + /// <param name="encoding">The character encoding to use.</param> + /// <returns>All lines in the stream.</returns> + public static string[] ReadAllLines(this Stream stream, Encoding encoding) + { + using (StreamReader reader = new StreamReader(stream, encoding)) + { + return ReadAllLines(reader).ToArray(); + } + } + + /// <summary> + /// Reads all lines in the <see cref="StreamReader" />. + /// </summary> + /// <param name="reader">The <see cref="StreamReader" /> to read from.</param> + /// <returns>All lines in the stream.</returns> + public static IEnumerable<string> ReadAllLines(this StreamReader reader) + { + string? line; + while ((line = reader.ReadLine()) != null) + { + yield return line; + } + } + } +} |
