C#逐行写入文件

Posted

技术标签:

【中文标题】C#逐行写入文件【英文标题】:C# Writing to file line by line 【发布时间】:2018-06-24 13:39:13 【问题描述】:

所以,我正忙着为我的公司制作一个 c# WinForms 应用程序。为此,我需要能够将我的票证保存在应用程序的数据中。工单对话框如下所示:

我想将所有数据保存在本地存储的某个文件中(.txt 可能是最好的?)一行一行,像这样:

应用程序还应该能够打开文件并在表单中显示数据。

我可能应该使用System.IO.Filenamespace,但我没有这方面的经验。我的谷歌搜索无法帮助我解决这个问题,所以我联系了 ***。

【问题讨论】:

到目前为止你尝试过什么?请给我们一些代码。 documentation 很容易阅读 您真的不想以纯文本格式保存数据。至少,您应该使用 json 或 xml。它会更容易编写和维护。 好吧,为了保存,您可以将值存储在一个数组中,然后循环遍历该数组,File.WriteLine 将完成这项工作。对于接收,我认为同样的概念可以完成这项工作 查看 NewtonSoft。序列化信息并将其写入文件。然后在阅读过程中,您可以对其进行反序列化并显示和/或编辑信息。 【参考方案1】:

第一个带有数组的 WriteLine 代码可能会对您有所帮助。因此,您将使用提供的所有信息创建一个字符串数组,然后将其写入文件。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-write-to-a-text-file

菲利普。

【讨论】:

【参考方案2】:

尝试下面的代码来创建一个xml文件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;

namespace WindowsFormsApplication1

    public partial class Form1 : Form
    
        const string FILENAME = @"c:\temp\test.xml";
        XDocument doc = null;
        XElement tickets = null;
        public Form1()
        
            InitializeComponent();
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);

            string ident = "<?xml version=\"1.0\" encoding=\"utf-8\"?><tickets></tickets>";
            doc = XDocument.Parse(ident);
            tickets = doc.Root;

        


        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        
            doc.Save(FILENAME);
        

        private void addTicket_Click(object sender, EventArgs e)
        
            XElement newTicket = new XElement("ticket",
                new XElement("ID", this.ID),
                new XElement("Name", this.Name),
                new XElement("Type", this.Type),
                new XElement("Device_Name", this.Device_Name),
                new XElement("Serial_Number", this.Number),
                new XElement("Repair_Data", this.Repair),
                new XElement("Fix", this.Fix),
                new XElement("Additional", this.Additional)
                );
            tickets.Add(newTicket);
        

    

【讨论】:

在不质疑 OP 的努力的情况下提供现成的解决方案正在促进盲目复制粘贴。 SO 不是也不应该成为代码编写服务。只是我的意见。 新手没有能力写代码。那么为什么要浪费任何人的时间。通常,我编写代码所需的时间比提出问题的时间要少。在这种情况下,这个人甚至不知道 xml 是什么或优点。让他们编写文本数据,然后用 xml 解决方案更正它们是否有意义?

以上是关于C#逐行写入文件的主要内容,如果未能解决你的问题,请参考以下文章

在R语言 中如何把list对象逐行写入csv文件中

逐行写入文件

C ++在循环中逐行写入文件或添加到数组并在循环后写入文件?

逐行写入文本文件 c

python Python逐行写入文件

Objective C - 创建文本文件以在 Cocoa 中逐行读取和写入