【问题标题】:Save data from LIST to text file将数据从 LIST 保存到文本文件
【发布时间】:2012-08-10 19:05:44
【问题描述】:

我正在使用这个库http://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library 来录制宏。 我想知道如何将“事件”保存在文本文件中以便以后加载?

所以,这里是列表:

List<MacroEvent> events = new List<MacroEvent>();

我需要做什么才能将数据存入文本文件?

【问题讨论】:

    标签: c# list text-files


    【解决方案1】:

    如果MacroEvent 有一个可用的ToString() 方法,您可以简单地遍历列表并打印到您的文本文件。

    【讨论】:

      【解决方案2】:
      TextWriter tw = new StreamWriter("myFile.txt");
      foreach (MacroEvent item in events)
      {
          tw.WriteLine(item.ToString());   
      }
      tw.Close();
      

      【讨论】:

      • 我已经尝试过类似的方法,但它不起作用。我在文本文件中只得到“GlobalMacroRecorder.MacroEvent”。无论如何感谢您的回答:)
      【解决方案3】:

      我建议使用扩展方法。我对MacroEvent 一无所知,也不打算从 Code Project 下载代码只是为了看看,但这可能是它的样子。

      public static class MacroEventExtensions
      {
          public static void WriteToFile(this List<MacroEvent> events, string path)
          {
              StringBuilder fileContents = new StringBuilder();
              foreach (var e in events)
              {
                  fileContents.AppendLine("{0}::{1}",
                      [some event id from the object],
                      [some event message from the object]);
              }
      
              File.WriteAllText(path, fileContents.ToString());
          }
      }
      

      然后在上面的代码中你只需调用:

      events.WriteToFile([some path])
      

      【讨论】:

        【解决方案4】:

        您有 3 个选项:

        1. 使用 ToString() 方法将 MacroEvent 导出为格式化文本。您可能需要覆盖默认实现。确保输入您需要的所有信息,否则您以后将无法检索它们。然后需要读取和解析文件以加载数据。

        2. 使用内置的 .net XML 序列化功能。写/读操作很简单。

          http://msdn.microsoft.com/en-us/library/ms950721.aspx

          http://support.microsoft.com/kb/815813

        3. 如果您不打算在其他应用程序上使用数据,为什么不使用 BinarySerializer?到目前为止,最好的方法,但生成的文件不会是文本格式。

          http://www.codeproject.com/Articles/1789/Object-Serialization-using-C

        【讨论】:

        • BinarySerializer 是完美的。谢谢!
        猜你喜欢
        • 1970-01-01
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-28
        • 1970-01-01
        • 1970-01-01
        • 2013-12-24
        相关资源
        最近更新 更多