using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace MediaBrowser.Common.Extensions
{
///
/// Class BaseExtensions.
///
public static class StreamExtensions
{
///
/// Reads all lines in the .
///
/// The to read from.
/// All lines in the stream.
public static string[] ReadAllLines(this Stream stream)
=> ReadAllLines(stream, Encoding.UTF8);
///
/// Reads all lines in the .
///
/// The to read from.
/// The character encoding to use.
/// All lines in the stream.
public static string[] ReadAllLines(this Stream stream, Encoding encoding)
{
using (StreamReader reader = new StreamReader(stream, encoding))
{
return ReadAllLines(reader).ToArray();
}
}
///
/// Reads all lines in the .
///
/// The to read from.
/// All lines in the stream.
public static IEnumerable ReadAllLines(this TextReader reader)
{
string? line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
///
/// Reads all lines in the .
///
/// The to read from.
/// All lines in the stream.
public static async IAsyncEnumerable ReadAllLinesAsync(this TextReader reader)
{
string? line;
while ((line = await reader.ReadLineAsync().ConfigureAwait(false)) != null)
{
yield return line;
}
}
}
}