除了程序写的有些长,没看出什么大问题
static void Main(string[] args)
{
Random random = new Random();
ListallLines = new List (File.ReadAllLines("c:\\log.txt"));
int x; int h = 1000;
x = random.Next(1, 11);
int z = h / x;
int y = h % x;
int count = 0;//count为累计写入计数
int m = y;
Console.WriteLine("x={0},z={1},y={2}", x, z, y);
for (int p = 1; p <= x; p++)
{
FileStream txtnew1 = new FileStream("c:\\test\\log" + p + ".txt", FileMode.OpenOrCreate);
StreamWriter swnew1 = new StreamWriter(txtnew1);
int n = (m > 0 ? 1 : 0);//是否仍有未写入的余数行
int c = 0;
for (int a = 1; a <= z+n; a++)
{
int rd = random.Next(allLines.Count);
swnew1.WriteLine(allLines[rd]);
allLines.RemoveAt(rd);
count++;
c++;
}
m--;
swnew1.Close();
txtnew1.Close();
Console.WriteLine("{0}={1}", p, c);//p为文件序号,c为每个文件行数
}
//File.WriteAllLines("c:\\log.txt", allLines.ToArray());
Console.WriteLine("==count=" + count);
Console.ReadKey();
}
你关闭FileStream 试试。读写文件结束后一般要关闭流swnew2 .Close();