2015-05-13 4 views
1

Я использую ниже код для чтения из исходного файла и записи в файлы назначения. Ниже приведены условия: 1. Я хочу, чтобы каждый файл содержал только 3 или менее 3 (для записей в последних файл). 2. Как только счет достиг 3, я хочу создать новый файл и начать писать там. 3. Продолжайте этот процесс, пока не закончите чтение из исходного файла. Этот код генерирует исключение, что «Stream не был доступен для записи».Stream Not Writable in C#

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(); 
       } 
      } 
     } 
    } 

Пожалуйста, предлагайте. Сообщите мне, если у вас есть лучший альтернативный подход.

+0

На каком исключении строки? –

+0

Строка: используя (StreamWriter Writer = новый StreamWriter (fs)) – Mandar

ответ

1

Я не уверен, что эта проблема существует в коде или нет, но если вы хотите создать файл с записью Асесс, чем вы можете попробовать

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(); 
     } 
+0

Отлично! Второе решение сработало для меня .. Большое спасибо Pranay! – Mandar