平行จุ๊บ 2019-05-22 21:15 采纳率: 0%
浏览 774

在c#从控制台写入文件并读取,第一次的数据写进去再读出来之后。 为什么第二次写数据覆盖掉第一次的?

#求大神解决
//文件路径
string fileName = @"D:\c#\workspace\myAssignment\chepiao2.txt";

        Console.WriteLine("\n\t简单客车售票系统" + "\n");
        string[,] zuo = new string[9, 4];
        for (int i = 0; i < 9; i++)
        {
            //Console.WriteLine();
            for (int j = 0; j < 4; j++)
            {
                zuo[i,j] = "【有票】";
                //Console.Write(zuo[i, j]);
            }
        }


        string s = string.Empty;//这个是标识退出或座位的。
       //读取文件中的数据           
        while (true)
        {

            using (StreamReader sr = new StreamReader(fileName))
            {
                //一次读取一行
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    //读取到的数据输出到控制台
                    Console.WriteLine(line);

                }

            }

            Console.Write("请输入作为行号和列号(例如:0,2)按q退出!");

            s = Console.ReadLine();//读取输入的值。         
            if (s == "q") break;              
            try
            {
                string[] str = s.Split(',');//以逗号分隔。
                int one = int.Parse(str[0]);
                int two = int.Parse(str[1]);

                while (true) 
                {
                    if (one >= zuo.GetLength(0) || two < 0
                        || one >= zuo.GetLength(0) || two < 0)
                    {
                        Console.WriteLine("输入的座位号有误请重新输入");                        
                        break;
                    }
                    else if (zuo[one, two] == "【已售】" )
                    {

                        //zuo[one, two] = "【已售】";
                        Console.WriteLine("输入座位票已售出,请重新输入");

                       //zuo[one, two] = "【已售】";
                        break;
                    }
                    else
                    {
                        zuo[one, two] = "【已售】";
                        Console.WriteLine("售票成功!");
                        break;
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("异常错误!");
            }

            if (s != "q")
            {
                //将控制台的数据写到文件中去
                using (StreamWriter sw = new StreamWriter(fileName))
                {

                    for (int i = 0; i < 9; i++)
                    {
                        string str = " ";
                        for (int j = 0; j < 4; j++)
                        {
                            str += zuo[i, j] + ",";
                        }
                        sw.WriteLine(str);
                    }

                }
            }
            else
            {
                break;
            }
        }

        Console.ReadKey();

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-05-22 23:55
    关注

    using (StreamWriter sw = new StreamWriter(fileName, true))

    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题