1

我觉得这应该是一个简单的问题,但它完全困扰着我。我有一个大小为 64 的字符串数组,称为 items。我想将每一项项目写入一个文本文件,每个值由一个制表符分隔。但是,当我尝试以下代码时,它会写入每个项目 + 选项卡,然后是新行。如何将所有数组写入一行,而不是一行一行?

using (System.IO.StreamWriter file = new System.IO.StreamWriter(path1+custFile))
    for(int i=0; i<64; i++)
        file.WriteLine(items[i].ToString()+"\t");

结果:

1002H0025   
Sample test Customer    

Foo 
Mr  
123 FAKE STREET 

sAN JOSE    

依此类推,我从上面排除了标签本身。应该是 1002H0025 Sample test Customer Foo Mr 123 FAKE STREET sAN JOSE

4

3 回答 3

4

您当前正在WriteLine()循环内使用。

尝试Write()改用。

WriteLine\n在写入输出后输出一个换行符 ( )。

于 2012-12-12T23:44:41.630 回答
4

好吧,是的,看 - 你反复调用这个:

file.WriteLine(items[i].ToString()+"\t");

顾名思义,这写了一行- 包括行终止符。您可以将其更改为file.Write... 但我建议完全摆脱您的循环:

file.WriteLine(string.Join("\t", items));

或者也摆脱作家:

string path = Path.Join(path1, custfile);
File.WriteAllText(path, string.Join("\t", items));
于 2012-12-12T23:45:09.920 回答
0

我需要使用 savefiledialog 将值保存在文本文件中,一切正常,但我无法看到我的所有输出,只有一行可见。

   SaveFileDialog savefile = new SaveFileDialog();
   savefile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
   if (savefile.ShowDialog() == DialogResult.OK)
   {
       using (FileStream fs = new FileStream(savefile.FileName, FileMode.Append, FileAccess.Write))
       using (StreamWriter writer = new StreamWriter(fs))
       {
           writer.WriteLine("northing:{0},easting:{1}", AE, AF);
           writer.Close();

       }

获得的 o/p 为北距:234567.89,东距:23456.89,其他线不可见

于 2016-08-18T10:31:17.377 回答