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

时间:2015-03-28 08:28:44

标签: c# file streamwriter

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

但是当我尝试写随机数时,我能够写入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 + ",");
         }
     }
}

2 个答案:

答案 0 :(得分:2)

你知道你可以这样做并简化:

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))));
}

答案 1 :(得分:0)

好的,你的代码有一些奇怪的东西,但主要似乎是每次运行程序时都会覆盖文件

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

,我并没有真正深入到底。