我目前正在尝试提高自己的C#技能,并希望为工人建立一个签到系统。我想将时间戳保存在文本文件中,并在同一个人.txt文件中添加每个新戳记。
我的问题没有使其起作用,我的问题是当我写出我的列表时,为添加的每个文本添加行System.Collections.Generic.List
1 [System.String]`。请帮我解决这个问题。
我真的不知道如何摆脱System.Collections.Generic.List
1 [System.String]`部分
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Provar_på_IO_File_system
{
class Program
{
static void Main(string[] args)
{
string workerName = "Albert Einstien";
string date = "2019-10-17";
string time = "14.29";
if (File.Exists(workerName + ".txt"))
{
string line;
StreamReader sr = new StreamReader(workerName + ".txt");
List<string> readLines = new List<string>();
line = sr.ReadLine();
while (line != null)
{
readLines.Add(line);
line = sr.ReadLine();
}
sr.Close();
using (StreamWriter sw = File.AppendText(workerName + ".txt"))
{
sw.WriteLine(readLines);
sw.WriteLine("HELLLLLLLLLOOOOOOOOOOOOOOOOOOOOOOOO");
sw.Close();
}
}
else
{
FileStream fs = new FileStream(workerName + ".txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(date + "\t" + time + "\t" + workerName);
sw.Close();
fs.Close();
}
}
}
}
所以我打算从中得到的结果是看该工作人员是否具有文本文件。如果没有,它将为该人创建一个个人文件并为其添加时间戳。否则,如果文件已经存在(他已经至少签入了一次),程序将读取.txt文件,将每一行保存到列表中,然后在系统打开文件时将文件中的所有内容写入文件中,还添加新的时间戳。
一切工作都如我所愿,但它不仅添加了时间戳,该程序还添加了行System.Collections.Generic.List
1 [System.String]“和时间戳。
答案 0 :(得分:1)
您需要遍历列表readLines。
var fileName = string.Format("{0}.txt", workerName)
using (StreamWriter sw = File.AppendText(fileName)) {
foreach(string line in readLines) {
sw.WriteLine(line);
}
}