C# 在数组末尾写入一个字符
这是我的密码:C# 在数组末尾写入一个字符,c#,arrays,streamwriter.write,C#,Arrays,Streamwriter.write,这是我的密码: for (int j = 0; j < bufferreader.Length; j++) { using (StreamWriter sw = File.AppendText(@"C:\Users\yamald\Documents\Normal.data")) { //sw.Write(); if (bufferreader.length != null) { sw.Write(bu
for (int j = 0; j < bufferreader.Length; j++)
{
using (StreamWriter sw = File.AppendText(@"C:\Users\yamald\Documents\Normal.data"))
{
//sw.Write();
if (bufferreader.length != null)
{
sw.Write(bufferreader[j] + ",");
}
else
{
sw.WriteLine("\n");
}
}
}
for(int j=0;j
如何将数组末尾的“\n”写入文件?
else
命令不运行。您可能只需将StreamWriter对象置于其他对象之前,并使其在循环完成之前可用,然后只需在循环后写入换行符,如下所示:
using (StreamWriter sw = File.AppendText(@"C:\Users\yamald\Documents\Normal.data"))
{
for (int j = 0; j < bufferreader.Length; j++)
{
sw.Write(bufferreader[j] + ",");
}
sw.WriteLine("\n");
}
使用(StreamWriter sw=File.AppendText(@“C:\Users\yamald\Documents\Normal.data”))
{
for(int j=0;j
使用while
循环并执行类似while(bufferreader.length!=null)
的操作,而不是for
循环和if
语句,可能更好,但这取决于您,我已经有一段时间没有使用bufferreader了,因此不知道确切的语法
但是,else
从未执行的原因是(正如EoiFirst正确地说的)您没有实际更改bufferreader.length,因此它永远不会为null。您需要放置sw.WriteLine(“\n”)代码>在for循环之后
当j=bufferreader.length时循环停止,if语句始终为true
另外,我认为bufferreader.length永远不会为null,因为您永远不会修改这个变量。我想你需要的是:
if (bufferreader.length > j)
这样做的问题是sw
将不存在于for
循环之外,因此可能还需要声明它,而不是使用using
。也许把它放在里面用。是的,那也行。事实上,为了反映这一点,我改变了答案+谢谢你的建议,谢谢你的回答。这就是解决方案sw
应该在循环之外。谢谢,我认为while
一旦我想将数组的内容写入一个文件,然后在每行的末尾写入\n
。这将生成一个数据集。您仍然可以使用while循环,并在循环之后写入/n
(与此解决方案之后的操作相同)。每行只需一个while循环。但是,这并没有多大区别,所以不要担心。我完全担心你的解决方案,但我希望给我一个例子。为什么对我的主题有这样的负面看法<代码>while(bufferreader.lenght!=null)sw.Write(bufferreader[i]+“,”)
是这样吗?这不起作用,因为bufferreader.length永远不会变为null(因此它将创建一个无限循环)。您可以在(!bufferreader.EndOfStream)sw.Write(bufferreader.Next()+“,”)时尝试
。我在这里找到了方法:嗨,你能给我投赞成票吗。我现在不能发布任何问题