c# - 使用未排序整数的随机列表创建文本文件
问题描述
下面是我尝试一种随机生成整数的方法,但有时它给我的整数比我想要的少,或者它甚至不会将它们写入文件。
//generates random integers and moves it into respective file
static void Randomgen(int Size)
{
StreamWriter SW = new StreamWriter("Test.txt"); // respective file
Random random = new Random();
for (int i = 0; i < Size; i++)
{
SW.WriteLine(random.Next(0, int.MaxValue));
}
}
然后我将它调用到主要使用
Randomgen(100);
Console.ReadLine();
所以这都是一个更大项目的一部分。我必须对这些整数进行排序,并测试不同的排序以及它们在不同文件大小上的效率。我只是不知道为什么有时它会起作用,有时却不起作用,而且当它起作用时,它会产生我输入到该Randomgen
方法中的任何内容。请有人解释为什么会这样。此外,当我尝试使用尺寸较小的方法(如 10)时,它只会创建没有整数列表的空白文本文件。
解决方案
.Net 流是缓冲的,因此您需要在写入流后刷新流,因此要么SW.Flush()
在末尾显式调用,要么更正确地处理流并使用 using 语句声明它:
static void Randomgen(int Size) {
using (var SW = new StreamWriter("Test.txt")) { // using
var random = new Random();
for (int i = 0; i < Size; i++) {
SW.WriteLine(random.Next(0, int.MaxValue));
}
}
}
C# 8.0+using
语法:
static void Randomgen(int Size) {
using var SW = new StreamWriter("Test.txt"); // using
var random = new Random();
for (int i = 0; i < Size; i++) {
SW.WriteLine(random.Next(0, int.MaxValue));
}
}