就如题目所说,请教大家这个有什么方法,可以做到吗??
 现在是在把数据保存到TXT文件时,要同时取出文件的行数,所以我先通过StreamWriter把数据保存到TXT文件,但是当同时想通过StreamReader取文件中数据行数时,取提示出错,说:文件正在被使用中!!!!
原本以为是文件的只读属性,但是在创建时也没制定文件属性了,
其实我是想在把数据写入txt文件时,同时取出文件的行数,如果大家有什么好的方法,请告诉一下,谢谢。

解决方案 »

  1.   


                //行番号
                int iLine = 0;
                using (StreamReader sr = new StreamReader(@"D:\test.txt"))//读取文件txt
                {
                    while (!sr.EndOfStream)
                    {
                        iLine++;
                        string sLine = sr.ReadLine();
                        if (sLine.Length < 1)
                        {
                            continue;
                        }
                       
                            string sRecordKbn = sLine.Substring(0, 8);//截取的数据
                            if (File.Exists(@"D:\test1.txt"))//提出数据存放文件txt
                            {
                                using (StreamWriter sw = File.AppendText(@"D:\test1.txt"))
                                {
                                    sw.WriteLine(sRecordKbn);
                                }
                            }
                            else//文件不存在创建文件
                            {
                                FileStream fs;
                                fs = File.Create(@"D:\test1.txt");//创建不要用file创建
                                //使用File.Create创建再复制/移动/删除时会提示:文件正由另一进程使用,因此该进程无法访问该文件
                                //改用 FileStream 获取 File.Create 返回的 System.IO.FileStream 再进行关闭就无此问题
                                fs.Close();
                                using (StreamWriter sw = File.AppendText(@"D:\test1.txt"))
                                {
                                    sw.WriteLine(sRecordKbn);
                                }                        }
                   }
                }
    看iLine就知道是哪行了。
      

  2.   

    谢谢 kongwei521,
     问题已经解决,看来创建文件还有很多不同点。但是好像这个方法有点不明白。