给定一个文本文件,我将如何读取文件中的任意行?
说,我有一个文件test.txt.我如何阅读文件中的第15行?
我所看到的是涉及将整个文本文件存储为String数组然后使用行号的值作为要从数组中使用的String的数量的东西......但是有一些复杂情况:文本文件是巨大的,我正在编写的应用程序的机器并不是一个顶尖的系统.速度不是首要任务,但绝对是一个主要问题.
有没有办法只读取文本文件的特定行并将结果存储为字符串?
感谢您的回复:该文件是KINDA结构化的.它有25行信息,然后X号线,但第25行17具有的价值X.
但是,有一个空白行,它作为文件中的第二条记录重复自身,X可以为每条记录赋予不同的值.
我想要做的是读取并存储前25行作为独立值,然后将下一个X(通常约250)行存储为数组.然后我将它存储在SQL数据库中并重复使用NEXT记录,直到我到达第Y条记录(文件中的记录数在第3行)
编辑2:好吧,我想我已经找到了基于你所有人的回应的解决方案.
我将读取前25行并将其存储为数组.我将数组的相关内容复制到局部变量然后我将删除前25行.然后,我可以使用info将下一个X行(数组中的第13项的值)存储为数组,将其序列化,将其存储在数据库中,然后删除我刚刚读取的行.
然后,我可以为每个后续记录重复该过程.
当然,这取决于我正在做的一个假设,说实话,我不确定是否属实.是否有可能从C#中删除文本文件中的前n行而不必读取整个内容并在没有前n行的情况下重写它?
我有两个文本文件,Source.txt和Target.txt.源将永远不会被修改并包含N行文本.所以,我想删除Target.txt中的特定文本行,并用Source.txt中的特定文本行替换,我知道我需要的行数,实际上是行号2,两个文件.
我有这样的事情:
string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;
using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
{
while ((line = reader.ReadLine()) != null)
{
if (line_number == line_to_edit)
{
writer.WriteLine(line);
}
line_number++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打开Writer时,目标文件被擦除,它会写入行,但是,当打开时,目标文件只包含复制的行,其余的则丢失.
我能做什么?
我有一个5000多行的文件.我想找到每次运行程序时选择其中一行的最有效方法.我原本打算用随机方法选择一个(之前我知道有5000行).认为可能效率低下,所以我想我会看第一行,然后从顶部删除它并将其附加到底部.但似乎我必须读取整个文件并创建一个要从顶部删除的新文件.
什么是最有效的方法:随机方法或新文件方法?
该程序将每5分钟运行一次,我使用的是c#4.5
我有一个几百行的文本文件,结构很简单.
名字姓氏
我需要从文件中挑选一个随机的firstname和listname.