34 lines
896 B
C#
34 lines
896 B
C#
|
using System;
|
|||
|
using System.IO;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace UnityFS
|
|||
|
{
|
|||
|
public static class BinaryWriterExtensions
|
|||
|
{
|
|||
|
public static void AlignStream(this BinaryWriter writer, int alignment)
|
|||
|
{
|
|||
|
var pos = writer.BaseStream.Position;
|
|||
|
var mod = pos % alignment;
|
|||
|
if (mod != 0)
|
|||
|
{
|
|||
|
writer.Write(new byte[alignment - mod]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void WriteAlignedString(this BinaryWriter writer, string str)
|
|||
|
{
|
|||
|
var bytes = Encoding.UTF8.GetBytes(str);
|
|||
|
writer.Write(bytes.Length);
|
|||
|
writer.Write(bytes);
|
|||
|
writer.AlignStream(4);
|
|||
|
}
|
|||
|
|
|||
|
public static void WriteNullEndString(this BinaryWriter writer, string str)
|
|||
|
{
|
|||
|
writer.Write(Encoding.UTF8.GetBytes(str));
|
|||
|
writer.Write((byte)0);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|