本文整理汇总了C#中System.IO.Stream.ReadUtf8String方法的典型用法代码示例。如果您正苦于以下问题:C# Stream.ReadUtf8String方法的具体用法?C# Stream.ReadUtf8String怎么用?C# Stream.ReadUtf8String使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.Stream
的用法示例。
在下文中一共展示了Stream.ReadUtf8String方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Read
public static IEnumerable<Base> Read(Stream stream)
{
while(stream.Position<stream.Length)
{
var nodeType = stream.ReadUtf8String(4);
switch (nodeType)
{
case "AVAL":
{
var result = new Aval();
var b = (byte)stream.ReadByte();
result.unknown = (b & 0x80) == 0x80;
if (!result.unknown) throw new UnknownNodeFlagException();
result.nameLength = (short)(b & 0x7f);
result.name = stream.ReadUtf8String(result.nameLength);
result.value = Value.Base.Read(stream);
yield return result;
break;
}
case "BLCK":
{
yield return Blck.Read(stream);
break;
}
case "ROTS":
{
yield return Rots.Read(stream);
break;
}
case "KCUP":
{
yield return Kcup.Read(stream);
break;
}
default:
throw new UnknownNodeTypeException(nodeType);
}
}
}
示例2: ReadAllValues
//public List<KeyValuePair<string, Base>> value;
private static IEnumerable<KeyValuePair<string, Base>> ReadAllValues(Stream stream)
{
while (stream.Position < stream.Length)
{
var b = (byte)stream.ReadByte();
bool f = (b & 0x80) == 0x80;
if (!f) throw new UnknownNodeFlagException();
var fieldName = stream.ReadUtf8String(b & 0x7f);
yield return new KeyValuePair<string, Base>(fieldName,Read(stream));
}
}
示例3: Read
internal static IEnumerable<Section> Read(Stream stream)
{
for (var i = 0; i < 32; i++)
{
// ReSharper disable UseObjectOrCollectionInitializer
var result = new Section();
// ReSharper restore UseObjectOrCollectionInitializer
result.name = stream.ReadUtf8String(32).TrimEnd(char.MinValue);
if (string.IsNullOrEmpty(result.name)) yield break;
result.offset = stream.ReadInt32();
yield return result;
}
}
示例4: Read
public int unknown2; // 4 bytes, 1
#endregion Fields
#region Methods
internal static W2Save Read(Stream stream)
{
// ReSharper disable UseObjectOrCollectionInitializer
var result = new W2Save();
// ReSharper restore UseObjectOrCollectionInitializer
result.header = stream.ReadUtf8String(4);
result.unknown1 = stream.ReadInt32();
result.unknown2 = stream.ReadInt32();
result.section = Section.Read(stream).ToList();
foreach (var sec in result.section)
sec.ReadData(stream);
return result;
}
示例5: ReadData
public void ReadData(Stream stream)
{
stream.Seek(offset, SeekOrigin.Begin);
string nodeType = stream.ReadUtf8String(4);
switch (nodeType)
{
case "BLCK":
{
data = Blck.Read(stream);
break;
}
default:
throw new UnknownNodeTypeException(nodeType);
}
}
示例6: Read
public static Blck Read(Stream stream)
{
var result = new Blck();
var b = (byte)stream.ReadByte();
result.unknown = (b & 0x80) == 0x80;
if (!result.unknown) throw new UnknownNodeFlagException();
result.nameLength = (short)(b & 0x7f);
result.name = stream.ReadUtf8String(result.nameLength);
result.length = stream.ReadInt32();
using (var memStream = new MemoryStream(stream.ReadBytes(result.length)))
result.children = Aval.Read(memStream).ToList();
return result;
}
示例7: Read
public long unknown; //crc?
#endregion Fields
#region Methods
public static List<FileEntry> Read(Stream stream, int count, out long memoryGate)
{
memoryGate = 0;
var result = new List<FileEntry>(count);
for (var i=0;i<count;i++)
{
var entry = new FileEntry();
var filenameLength = stream.ReadInt16();
entry.filename = stream.ReadUtf8String(filenameLength).TrimEnd(char.MinValue);
entry.unknown = stream.ReadInt64();
entry.decompressedLength = stream.ReadInt64();
entry.offset = stream.ReadInt64();
entry.compressedLength = stream.ReadInt64();
result.Add(entry);
var estimatedBufferSize = entry.compressedLength + entry.decompressedLength;
if (memoryGate < estimatedBufferSize) memoryGate = estimatedBufferSize;
}
return result;
}