使用StreamWriter将结构写入文本文件

时间:2013-12-18 22:52:06

标签: c# streamwriter

以下是一个应该询问用户问题的功能,用户输入的内容应该保存到文本文件中。

这是一个应该接受1 int,4 stringsDateTime的结构。这是我的功能到目前为止看起来像但它显然不起作用。控制台正在显示问题,但未保存到文本文件中。

static void AddNew(CustomerStruct[] _NewCustomer)
{
    Console.Clear();

    using (StreamWriter sw = new StreamWriter(@"..\..\..\Files\Customer.txt", true))
    {
        Console.Write("\n\n Enter Customer Number: ");
        sw.WriteLine(_NewCustomer[RecCount].CustomerNo);

        Console.Write("\n\n Enter Customer Surname: ");
        sw.WriteLine(_NewCustomer[RecCount].Surname);

        Console.Write("\n\n Enter Customer Forname: ");
        sw.WriteLine(_NewCustomer[RecCount].Forename);

        Console.Write("\n\n Enter Customer Street address: ");
        sw.WriteLine(_NewCustomer[RecCount].Street);

        Console.Write("\n\n Enter Customer Town: ");
        sw.WriteLine(_NewCustomer[RecCount].Town);

        Console.Write("\n\n Enter Customer DOB: ");
        sw.WriteLine(_NewCustomer[RecCount].DOB);

        RecCount++;
    }

    Console.ReadLine();
}

2 个答案:

答案 0 :(得分:1)

如果您喜欢快捷方式

static void AddNew(CustomerStruct[] _NewCustomer)
{
Console.Clear();

using (StreamWriter sw = new StreamWriter(@"..\..\..\Files\Customer.txt", true))
{
    Console.Write("\n\n Enter Customer Number: ");
    sw.WriteLine(_NewCustomer[RecCount].CustomerNo=Console.ReadLine());

    Console.Write("\n\n Enter Customer Surname: ");
    sw.WriteLine(_NewCustomer[RecCount].Surname=Console.ReadLine());

    Console.Write("\n\n Enter Customer Forname: ");
    sw.WriteLine(_NewCustomer[RecCount].Forename=Console.ReadLine());

    Console.Write("\n\n Enter Customer Street address: ");
    sw.WriteLine(_NewCustomer[RecCount].Street=Console.ReadLine());

    Console.Write("\n\n Enter Customer Town: ");
    sw.WriteLine(_NewCustomer[RecCount].Town=Console.ReadLine());

    Console.Write("\n\n Enter Customer DOB: ");
    sw.WriteLine(_NewCustomer[RecCount].DOB=Console.ReadLine());

    RecCount++;
}

Console.ReadLine();
}

答案 1 :(得分:0)

正如您在评论中提到的,您只需要文件中来自Console的数据。因此,这是对“如何从控制台读取数据并将其放入文件?”的答案。

您想从控制台读取数据,然后将其写入流:

public static void ReadNewCustomerFromConsole()
{
    var pathToYourFile = @"..\..\..\Files\Customer.txt";

    using (var writer = new StreamWriter(pathToYourFile , true))
    {
        Console.Clear();

        // Write a message in Console
        Console.WriteLine("Enter Customer Number: ");

        // Read user input from Console
        var customerNumber = Console.ReadLine();

        // Write user input to file
        writer.WriteLine(customerNumber);

        // Now read Customer Surname
        Console.WriteLine("Enter Customer Surname:");
        var customerSurname = Console.ReadLine();
        writer.WriteLine(customerSurname);

        // And so on for the other data you need ...
    }
}

请注意,我使用的是Console.WriteLine(),而不是\n

另外,我建议将您的方法重命名为ReadNewCustomerFromConsole(),如果您不想用读取信息填充它,则不要在其中传递struct数组(如果你这样做,我建议使用class代替struct)。