mirror of
https://github.com/nsnail/ns-ext.git
synced 2025-12-14 08:25:48 +08:00
refactor: ♻️ 2.0 (#3)
This commit is contained in:
32
src/backend/NSExt/Extensions/StreamExtensions.cs
Normal file
32
src/backend/NSExt/Extensions/StreamExtensions.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace NSExt.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// StreamExtensions
|
||||
/// </summary>
|
||||
public static class StreamExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// FirstByteIndex
|
||||
/// </summary>
|
||||
public static long FirstByteIndex(this Stream me, byte[] findBytes)
|
||||
{
|
||||
int data;
|
||||
while ((data = me.ReadByte()) != -1) {
|
||||
if (findBytes.Contains((byte)data)) {
|
||||
return me.Position;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IsTextStream
|
||||
/// </summary>
|
||||
public static bool IsTextStream(this Stream me)
|
||||
{
|
||||
#pragma warning disable IDE0300
|
||||
return me.FirstByteIndex(new byte[] { 0x00, 0xff }) < 0;
|
||||
#pragma warning restore IDE0300
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user