我有一个简单的程序,将 7 个数字中的 6 个写入文本文件。从逻辑上讲,一切似乎都很好。
但是,数字并未按预期写入文件。
Random random = new Random();
Console.WriteLine("Please enter the name of the numbers file");
string fileLotto = Console.ReadLine();
//creating the lotto file
FileStream fs = new FileStream("../../" + fileLotto + ".txt", FileMode.OpenOrCreate, FileAccess.Write);
BufferedStream bs = new BufferedStream(fs);
Console.WriteLine("File created");
fs.Close();
StreamWriter sw = new StreamWriter("../.." + fileLotto + ".txt");
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 7; j++)
{
//Console.Write(random.Next(1, 49));
sw.Write(random.Next(1, 49) + " " );
}
sw.WriteLine();
}
sw.Close();
文件已创建,但是没有将任何数字写入该文件...请建议为什么?
请注意,您的代码尚未优化,并且创建了许多不必要的流和缓冲区,但 @Michael 的答案概述了在该位置使用的正确代码。我的回答只是强调为什么您的代码没有按预期方式工作。
你的问题的答案其实很简单。
StreamWriter sw = new StreamWriter("../.." + fileLotto + ".txt");
您忘记添加/
在字符串中../..
. If fileLotto
假设具有该值example
那么FileStream
将创建文件example.txt
但是StreamWriter
将访问..example.txt
用于写作,也放在不同的文件夹中。
使用变量来定义必须重复使用的值。记住 DRY 原则。
Random random = new Random();
Console.WriteLine("Please enter the name of the numbers file");
string fileLotto = Console.ReadLine();
string fileName = "../../" + fileLotto + ".txt";
//creating the lotto file
FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
Console.WriteLine("File created");
fs.Close();
StreamWriter sw = new StreamWriter(fileName);
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 7; j++)
{
//Console.Write(random.Next(1, 49));
sw.Write(random.Next(1, 49) + " " );
}
Console.WriteLine();
}
sw.Close();
我再次说请使用@Michael 的代码。这只是为了突出显示代码的主要问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)