PanGu.Dict.WordDictionary.SaveToBinFile C# (CSharp) Method

SaveToBinFile() private method

private SaveToBinFile ( String fileName, string verStr ) : void
fileName String
verStr string
return void
        private void SaveToBinFile(String fileName, string verStr)
        {
            if (verStr.Length > 8)
            {
                verStr = verStr.Substring(0, 8);
            }

            using (FileStream fs = new FileStream(fileName, FileMode.Create))
            {
                byte[] version = new byte[32];

                int i = 0;
                foreach (byte v in System.Text.Encoding.UTF8.GetBytes("Pan Gu Segment V" + verStr))
                {
                    version[i] = v;
                    i++;
                }

                fs.Write(version, 0, version.Length);

                foreach (WordAttribute wa in _FirstCharDict.Values)
                {
                    byte[] word = System.Text.Encoding.UTF8.GetBytes(wa.Word);
                    byte[] pos = System.BitConverter.GetBytes((int)wa.Pos);
                    byte[] frequency = System.BitConverter.GetBytes(wa.Frequency);
                    byte[] length = System.BitConverter.GetBytes(word.Length + frequency.Length + pos.Length);

                    fs.Write(length, 0, length.Length);
                    fs.Write(word, 0, word.Length);
                    fs.Write(pos, 0, pos.Length);
                    fs.Write(frequency, 0, frequency.Length);
                }

                foreach (WordAttribute wa in _DoubleCharDict.Values)
                {
                    byte[] word = System.Text.Encoding.UTF8.GetBytes(wa.Word);
                    byte[] pos = System.BitConverter.GetBytes((int)wa.Pos);
                    byte[] frequency = System.BitConverter.GetBytes(wa.Frequency);
                    byte[] length = System.BitConverter.GetBytes(word.Length + frequency.Length + pos.Length);

                    fs.Write(length, 0, length.Length);
                    fs.Write(word, 0, word.Length);
                    fs.Write(pos, 0, pos.Length);
                    fs.Write(frequency, 0, frequency.Length);
                }

                foreach (WordAttribute wa in _WordDict.Values)
                {
                    byte[] word = System.Text.Encoding.UTF8.GetBytes(wa.Word);
                    byte[] pos = System.BitConverter.GetBytes((int)wa.Pos);
                    byte[] frequency = System.BitConverter.GetBytes(wa.Frequency);
                    byte[] length = System.BitConverter.GetBytes(word.Length + frequency.Length + pos.Length);

                    fs.Write(length, 0, length.Length);
                    fs.Write(word, 0, word.Length);
                    fs.Write(pos, 0, pos.Length);
                    fs.Write(frequency, 0, frequency.Length);
                }
            }
        }