流不可写在C#

时间:2015-05-13 07:12:50

标签: c#

我使用下面的代码从源文件中读取并写入目标文件。以下是条件: 1.我希望每个文件只包含3个或更少3个(对于最后一个文件中的记录)。 2.一旦计数达到3,我想创建新文件并开始在那里写。 3.继续此过程,直到从源文件读取完成。 此代码抛出“Stream不可写”的异常。

 static void Main(string[] args)
    {
        int RecCnt = 10;
        int fileCount = RecCnt / 3;
        String SourceFile = @"D:\sample\test.txt";
        using (StreamReader sr = new StreamReader(SourceFile))
        {                
            while (!sr.EndOfStream)
            {
                String dataLine = sr.ReadLine();
                for (int x = 0; x <= (fileCount + 1); x++)
                {
                    String Filename = @"D:\sample\Destination_" + x + ".txt";
                    FileStream fs = new FileStream(Filename, FileMode.OpenOrCreate);
                    for (int y = 0; y <= 3; y++)
                    {
                        using (StreamWriter Writer = new StreamWriter(fs))
                        { 
                            Writer.WriteLine(dataLine);
                        }
                        dataLine = sr.ReadLine();
                    }
                    dataLine = sr.ReadLine();
                }
            } 
        }
    }

请建议。如果您有更好的替代方法,请告诉我。

1 个答案:

答案 0 :(得分:2)

我不确定代码中是否存在此问题,但是如果您想使用write acess创建文件而不是尝试

FileStream fileStream = new FileStream(
      @"c:\words.txt", FileMode.OpenOrCreate, 
      FileAccess.ReadWrite, FileShare.None);

你可以这样做

        //path of file and there is no need of creating filestream now
        using (StreamWriter w = File.AppendText(path))
        {
           for (int y = 0; y <= 3; y++)
            {
              Writer.WriteLine(dataLine);  
              dataLine = sr.ReadLine();  
            }
            w.Close();
        }