在125行调试的时候显示txt被另一程序占用,是我哪里的txt文件读取了没有关闭吗?
应该怎么样操作?

解决方案 »

  1.   

    你已经将数据全部读取到 mystr 数组了,又何苦再一行行的去读 sr?
      

  2.   

    好的,我等下改,请问这个txt为什么105行无法读取啊,求讲解下
      

  3.   

    string path = @"C:\Users\vicii\Desktop\课程设计\StudentInformation.txt";
                StreamReader sr = new StreamReader(path, Encoding.UTF8);
                string[] mystr = File.ReadAllLines(path);
                int i = mystr.Length;
                int tag = 0;
                string sline;
                while ((sline=sr.ReadLine())!=null)
                {
                    if (textBox1.Enabled || textBox1.Text.ToString() != null)
                    {
                        if (sline.ToString().Trim().Contains(textBox1.Text.Trim() + "**"))//判断输入的学号是否存在
                        {
                            MessageBox.Show("输入的学号已经存在!");
                            break;
                        }
                        tag++;
                    }
                    else if (textBox2.Enabled || textBox1.Text.ToString() != null)
                    {
                    }
                }
                sr.Close();
                if (tag == i)//输入的学号不存在
                {
                    //将获取的学生信息拆分
                    string[] breakDown = mystr[sum].Split('*');
                    breakDown[0] = textBox1.Text.ToString();            //把学号更改
                    mystr[sum]= breakDown[0] + "**" + breakDown[2] + "**" + breakDown[4] + "**" + breakDown[6] + "**" + breakDown[8];
                    StreamWriter sw = new StreamWriter(path, true,Encoding.UTF8);
                    for (int n = 0; n < i; n++)
                    {
                        sw.WriteLine(mystr[n]);
                    }
                    sw.Close();
                }
                MessageBox.Show("修改学生信息成功!");