我的问题是保存并读取文件。
您能否建议将各种表格中的数据(主要是数字)保存到数据文件(可以是.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的第二行写入数据。如果是真的,怎么读呢?
有更好的方法吗?
我不介意你只是粘贴一个网址给我阅读或直接发布示例代码。
答案 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;
}
你可以调整一下并让它变得更好,但这对我来说很有用。