我使用下面的代码从源文件中读取并写入目标文件。以下是条件: 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();
}
}
}
}
请建议。如果您有更好的替代方法,请告诉我。
答案 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();
}