日期:2014-05-17  浏览次数:20788 次

关于C#Int16的二进制读写问题
今天发现了一段代码,就扫描了下,感觉应该挺简单的,但是结果却让我和失望,感觉有的本质的东西还是没有掌握,下为代码:

 static void Main(string[] args)
        {
            //写入数字

            string filePath;
            Console.WriteLine("请输入需要创建的二进制文件路径(包括文件名)");
            filePath = Console.ReadLine();

            FileStream fileStream = new FileStream(filePath, FileMode.Create);
            BinaryWriter writer = new BinaryWriter(fileStream);

            for (int index = 0; index < 20; index++)
            {
                writer.Write(index);
            }

            Console.WriteLine("写入完毕");
            writer.Close();
            fileStream.Close();
        }


我输入的测试用例为  F:test.txt;下面的代码是对刚刚写的文件进行读操作:


static void Main(string[] args)
        {
            //读入数据
            Console.WriteLine("请输入文件名:");
            string filePath = Console.ReadLine();
            if (!File.Exists(filePath))
            {
                Console.WriteLine("文件不存在。");
            }
            else
            {
                FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                BinaryReader reader = new BinaryReader(fileStream);
                try
                {
                    while (true)
                    {
                        Console.WriteLine(reader.ReadInt16());