使用c#将随机数写入文本文件

Writing random numbers to text file using c#

我想将随机数写入文本文件。

但是当我尝试写随机数时,我可以写到 49 个数字,超过 49 个数字会覆盖所有数字。 我在下面附上我的代码。请让我知道我该怎么做?

public void CreateRandomData(int lowerRange, int upperRange)
{ 
     Random r = new Random(); 
     int number = 0; 
     using (StreamWriter writer = File.AppendText(@"c:\test.txt"))
     {
         for (int i = 1; i < 100; i++)
         {
             number = r.Next(lowerRange, upperRange);
             writer.Write(number + ",");
         }
     }
}

好的,您的代码有一些奇怪的地方,但主要是每次您 运行 程序

时似乎都会覆盖文件
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.IO;
using System.Text;

namespace UnitTestProject3
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            int lowerRange = 1;
            int upperRange = 10;
            string filename = @"c:\development\test.txt";
            Random r = new Random();
            int number = 0;

            using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
            {
                for (int i = 1; i < 500; i++)
                {
                    number = r.Next(lowerRange, upperRange);

                    writer.Write(number + ",");

                }
                writer.Flush();
                writer.Close();
            }

        }
    }
}

其他读者请注意:

在撰写本文时,我注意到当您在记事本中打开附加文件时,File.Append 产生了奇怪的结果。数据已附加,但文件似乎已损坏。

我认为这是由于编写器没有正确刷新或关闭或者使用了错误的编码。

但是,我并没有真正深入了解,因为上面的代码无论出于何种原因都有效并且没有使用 File.Append

你知道你可以做到这一点并使它变得简单:

public void CreateRandomData(int lowerRange, int upperRange)
{ 
    Random r = new Random();
    File.AppendAllText(@"c:\test.txt", String.Join(",", Enumerable.Range(0, 100)
        .Select(n => r.Next(lowerRange, upperRange))));
}