为什么我的StreamWriter保存到文本文件?

时间:2016-11-15 05:34:55

标签: c# visual-studio

使用streamreader阅读 fruits.txt 文件时没有问题,但写入 newFruits.txt 似乎无法正常工作。

我运行代码,没有错误,然后检查newFruits.txt文件,看它仍然是空白的。我有以下newFruits.txt屏幕截图的属性窗口,如果有帮助的话。我检查了其他问题,但它们看起来并不相似或不易理解。有什么建议吗?

using System;
using System.IO;
using System.Globalization;
using System.Threading;

class FruityLoops
{
    static void Main()
    {
        Console.WriteLine("Loading and sorting fruits...");
        CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
        TextInfo textInfo = cultureInfo.TextInfo;


        StreamReader fruitreader = new StreamReader("fruits.txt");
        string fruitList = fruitreader.ReadLine();
        char x = ',';
        string[] fruitArray1 = fruitList.Split(x);
        Array.Sort(fruitArray1);
        fruitreader.Close();

        StreamWriter fruitwriter = new StreamWriter("newFruits.txt");
        fruitwriter.WriteLine(fruitArray1);
        fruitwriter.Close();

    }
}

这是我正在尝试编写的文本文件的属性菜单的picture。看到有什么问题?不确定这是设置问题还是代码问题。

这里也是我的fruits.txt文件的picture

3 个答案:

答案 0 :(得分:3)

使用' WriteLine'时,你应该一次传递一个字符串。方法:

        for (int i = 0; i < fruitArray1.Length -1 ; i++)
        {
            fruitwriter.WriteLine(fruitArray1[i])
        }

答案 1 :(得分:1)

代码可以正常工作,但它会将newFruits.txt文件保存到程序运行的bin \ Debug或bin \ Release目录中, not 保存到newFruits.txt文件中你的项目。

主要评论:

  1. 代码会将System.String[]写入输出文件
  2. StreamWriter应包含在using语句中。

答案 2 :(得分:0)

  1. 你没有提到数组的元素。
  2. 你应该给出你想要检索的元素的索引。

    fruitwriter.WriteLine(fruitArray1[0]);
    

    而不是

    fruitwriter.WriteLine(fruitArray1);
    
    1. 即使它写了,程序也只能读写一行。

      使用循环读取和写入行,并在读完所有行后关闭StreamReader和StreamWriter。