我正在尝试创建一个csv文件,其中每个条目都由用户输入.一旦输入了一组值,它就应该继续下一个.但是我似乎无法做到这一点.每次运行程序时,它都会替换以前的值.
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人建议.
您必须以追加模式打开文件,如下所示:
System.IO.StreamWriter objWriter;
objWriter = new File.AppendText(file_name);
Run Code Online (Sandbox Code Playgroud)
该StreamWriter的构造将覆盖使用的是如果它存在的文件.有一个重载的构造函数,您可以将布尔值作为第二个参数传递给它,以告诉它追加:
System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(file_name, true);
Run Code Online (Sandbox Code Playgroud)
此外,您正在使用的Write方法不会附加换行符.如果你使用WriteLine方法,它会.
Console.WriteLine(LDetailsCSV);
objWriter.WriteLine(LDetailsCSV);
objWriter.Close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20728 次 |
| 最近记录: |