使用c#从各种表单读取或写入多个数据的最佳解决方案

时间:2017-08-02 01:09:57

标签: c# save file.readalllines

我的问题是保存并读取文件。

您能否建议将各种表格中的数据(主要是数字)保存到数据文件(可以是.txt,.dat等),然后从文件中读取特定数据的最佳方法......

例如......

我写道:

数据1 数据2 数据3

当在等式中需要数据3时,它可以读取它并仅选择数据3 ...

我现在想的是每行保存数据,

例如:

数据1
数据2
数据3

因此,当我需要数据3时,我只需要从第3行选择数据来选择数据3。

怎么做?

我研究了一下,发现了这个

string[] Lines = File.ReadAllLines("filename.txt");
Lines[1] = "second line new value";
File.WriteAllLines("filename.txt");

从我得到的,该命令将在filename.txt的第二行写入数据。如果是真的,怎么读呢?

有更好的方法吗?

我不介意你只是粘贴一个网址给我阅读或直接发布示例代码。

2 个答案:

答案 0 :(得分:0)

试试这个:

Ir使用System.IO.File类中的静态方法ReadAllText和ReadAllLines读取文本文件的内容。

// Read the file as one string.
                string text = System.IO.File.ReadAllText(@"C:\WriteText.txt");

       // Display the file contents to the console. Variable text is string.
                System.Console.WriteLine("Contents of WriteText.txt = {0}", text);

    // Read each line of the file into a string array. 
    // Each element of the array is one line of the file.
             string[] lines = System.IO.File.ReadAllLines(@"C:\WriteLines2.txt");

                    // Display the file contents by using a foreach loop.
                    System.Console.WriteLine("Contents of WriteLines2.txt = ");
                    foreach (string line in lines)
                {
                    // Use a tab to indent each line of the file.
                    Console.WriteLine("\t" + line);
                }
                // Keep the console window open in debug mode.
                 Console.WriteLine("Press any key to exit.");
                 System.Console.ReadKey();

答案 1 :(得分:0)

这是我解决这类问题的方法,当我想在.txt配置文件中保存一些数据然后我想要检索那些信息时。

这是WriteToFile方法,它还会检查您插入的数据是否已存在于文件中:

 using System.IO;

 public void WriteToFile(string newData, string _txtfile)
    {
        List<string> ListToWrite = new List<string>();
        /// Reads every line from the file
        try
        {
            using (StreamReader rd = new StreamReader(_txtfile, true))
            {
                while (true)
                {
                    ListToWrite.Add(rd.ReadLine().Trim());
                }
            }
        }
        catch (Exception)
        {
        }

        try
        {
            /// Check if the string that you want to insert is already on the file
            var x = ListToWrite.Single(a => a.Contains(newData));

            /// If there's no exception, means that it found your string in the file, so lets delete it.
            ListToWrite.Remove(x);

        }
        catch (Exception)
        {
            /// If a exception is thrown, it did not find your string so add it.
            ListToWrite.add(newData);
        }

        /// Now is time to write the NEW file.
        if (ListToWrite.Count > 0)
          {
              using (StreamWriter tw = new StreamWriter(_txtfile, true))
              {
                  try
                  {
                      foreach (string s in l)
                      {
                          tw.WriteLine(s);
                      }
                  }
                  catch (Exception)
                  {
                      break;
                  }
              }
          }
    }

现在,如果您想通过使用字符串进行搜索来检索某些信息:

    using System.IO;

    public static string GetData(string _txtfile, string searchstring)
    {
        string res = "";
        using (StreamReader rd = new StreamReader(_txtfile, true))
        {
            while (true)
            {
                try
                {
                    string line = rd.ReadLine().Trim();
                    if (line.Contains(searchstring))
                    {
                        return line;
                    }

                }
                catch (Exception)
                {
                    break;
                }
            }
        }
        return res;
    }

你可以调整一下并让它变得更好,但这对我来说很有用。