在C#中创建CSV文件 [英] Creating a CSV File in C#

查看:1646
本文介绍了在C#中创建CSV文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图创建一个csv文件,其中每个条目由用户输入。一旦输入了一组值,它应该移动到下一个值。但我似乎无法做到这一点。每次我运行程序,它替换以前的值。

I am trying to created a csv file where each entry is inputed by the user. Once one set of of values have been entered it should move on to the next. However I cannot seem to do the bit. Each time i run the program, it replaces the previous values.

using System;
using System.IO;
using System.Collections.Generic;


namespace FileAccess
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string FName;
            string LName;
            string Dpt;
            string Grade;
            string NumberOfHours;

            string file_name = "EmployeeDetails.txt";

            System.IO.StreamWriter objWriter;
            objWriter = new System.IO.StreamWriter(file_name);

            String[] ArrayDetails = new string[5];

            Console.Write("Enter Emp First Name: ");
            FName=Console.ReadLine();
            Console.Write("Enter Emp Last Name: ");
            LName = Console.ReadLine();
            Console.Write("Enter Emp Department: ");
            Dpt = Console.ReadLine();
            Console.Write("Enter Employee Grade: ");
            Grade = Console.ReadLine();
            Console.Write("Enter Number Of Hours Worked: ");
            NumberOfHours = Console.ReadLine();

            ArrayDetails[0] = FName;
            ArrayDetails[1] = LName;
            ArrayDetails[2] = Dpt;
            ArrayDetails[3] = Grade;
            ArrayDetails[4] = NumberOfHours;

            // Create new list of strings
            List<string> LDetails = new List<string>(); // Create new list of strings
            LDetails.Add(FName); // Add string 1
            LDetails.Add(LName); // 2
            LDetails.Add(Dpt); // 3
            LDetails.Add(Grade); // 4
            LDetails.Add(NumberOfHours); // 5
            //OutPut the data into the file
            string LDetailsCSV = string.Join(",", LDetails.ToArray());
            Console.WriteLine(LDetailsCSV);
            objWriter.Write(LDetailsCSV);
            objWriter.Close();
        }
    }
}

p>

推荐答案

StreamWriter构造函数将覆盖您使用的文件(如果存在)。有一个重载的构造函数,您可以将布尔值作为第二个参数传递给它,以告诉它append:

The StreamWriter constructor will overwrite the file you are using if it exists. There is an overloaded constructor to which you can pass a boolean as a second argument to tell it to append:

System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(file_name, true);

此外,您使用的写入方法不会附加换行符。如果您使用 WriteLine 方法,则会。

In addition, the Write method you are using will not append a line break. If you use the WriteLine method, it will.

 Console.WriteLine(LDetailsCSV);
 objWriter.WriteLine(LDetailsCSV);
 objWriter.Close();

这篇关于在C#中创建CSV文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆