O Streamwriter está cortando minhas últimas linhas algumas vezes no meio de uma linha?

Aqui está o meu código. :

FileStream fileStreamRead = new FileStream(pathAndFileName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.None);
FileStream fileStreamWrite = new FileStream(reProcessedFile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);

                StreamWriter sw = new StreamWriter(fileStreamWrite);

                int readIndex = 0;
                using (StreamReader sr = new StreamReader(fileStreamRead))
                {
                    while (!sr.EndOfStream) {
                        Console.WriteLine("eof" + sr.EndOfStream);
                        readIndex++;
                        Console.WriteLine(readIndex);
                        string currentRecord = "";
                        currentRecord = sr.ReadLine();
                        if (currentRecord.Trim() != "")
                        {
                            Console.WriteLine("Writing " + readIndex);
                            sw.WriteLine(currentRecord);
                        }
                        else {
                            Console.WriteLine("*******************************************spaces ***********************");
                        }
                    }

Ele está cortando duas linhas com um arquivo de teste e meia linha e, em seguida, uma linha e meia linha com o outro arquivo de teste em que estou executando.

Eu não sou um especialista em streamreader / escritor que você provavelmente pode ver.

Qualquer idéia ou sugestão seria muito apreciada, pois isso está me deixando louco. Tenho certeza de que sou eu quem usa isso incorretamente.

questionAnswers(5)

yourAnswerToTheQuestion