我的问题是保存和读取文件。
您能否建议将各种形式的数据(主要是数字(保存到数据文件(可以是.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");
据我所知,该命令将在文件名.txt的第二行写入数据。如果是真的,如何阅读?
有没有更好的方法?
我不介意你只是粘贴一个网址让我阅读或直接发布示例代码。
试试这个:
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();
这是我针对此类问题的解决方案,当我想将一些数据保存在.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;
}
你可以调整它并让它变得更好,但这目前对我有用。