10 个解决方案
#1
先Seek到这一行的位置,比如按回车的个数,然后直接向当前位置写入数据。
#2
up
#3
对,主要是要确定的你的行是怎么分割的,例子\n 或者\r
#4
要好的效率就要用一定(固定)格式的文件,比如每行固定80个字符。
否则,要找到一个行号必须逐个读过该行以前的 全部数据(不固定行框你只能不断搜索换行符号)。
而且更换一行后,只要新行的字符数不一样,你还得读出并且写入后面 所有的数据。
否则,要找到一个行号必须逐个读过该行以前的 全部数据(不固定行框你只能不断搜索换行符号)。
而且更换一行后,只要新行的字符数不一样,你还得读出并且写入后面 所有的数据。
#5
如果只是“我不想一次全部读进内存”,倒比较好办。
StreamReader就是用来做这个的。
StreamReader就是用来做这个的。
#6
能给点代码吗
#7
System.IO.StreamReader reader = new StreamReader(@"C:\1.txt");
string line;
while (reader.Peek() >= 0)
{
line = reader.ReadLine();
}
string line;
while (reader.Peek() >= 0)
{
line = reader.ReadLine();
}
#8
首先,我希望确认,你的这个文件是有数据结构的文件。
不然,你今天修改了,也许是正常的,你下次修改的时候,就不知道是什么位置了。
不能够准确定位。
如果是有数据结构(记录型文件)的,那你的可以定义编号,
然后按照编号来读取、查找、修改、删除等等。
如果还是怕慢,你可以打开文件后,按区域划分为多个块,每个块用一个线程来读取,
当得到你要的数据后,让所有的线程都退出。
不然,你今天修改了,也许是正常的,你下次修改的时候,就不知道是什么位置了。
不能够准确定位。
如果是有数据结构(记录型文件)的,那你的可以定义编号,
然后按照编号来读取、查找、修改、删除等等。
如果还是怕慢,你可以打开文件后,按区域划分为多个块,每个块用一个线程来读取,
当得到你要的数据后,让所有的线程都退出。
#9
很快我就可以懂了,来学习一下
#10
顶
#1
先Seek到这一行的位置,比如按回车的个数,然后直接向当前位置写入数据。
#2
up
#3
对,主要是要确定的你的行是怎么分割的,例子\n 或者\r
#4
要好的效率就要用一定(固定)格式的文件,比如每行固定80个字符。
否则,要找到一个行号必须逐个读过该行以前的 全部数据(不固定行框你只能不断搜索换行符号)。
而且更换一行后,只要新行的字符数不一样,你还得读出并且写入后面 所有的数据。
否则,要找到一个行号必须逐个读过该行以前的 全部数据(不固定行框你只能不断搜索换行符号)。
而且更换一行后,只要新行的字符数不一样,你还得读出并且写入后面 所有的数据。
#5
如果只是“我不想一次全部读进内存”,倒比较好办。
StreamReader就是用来做这个的。
StreamReader就是用来做这个的。
#6
能给点代码吗
#7
System.IO.StreamReader reader = new StreamReader(@"C:\1.txt");
string line;
while (reader.Peek() >= 0)
{
line = reader.ReadLine();
}
string line;
while (reader.Peek() >= 0)
{
line = reader.ReadLine();
}
#8
首先,我希望确认,你的这个文件是有数据结构的文件。
不然,你今天修改了,也许是正常的,你下次修改的时候,就不知道是什么位置了。
不能够准确定位。
如果是有数据结构(记录型文件)的,那你的可以定义编号,
然后按照编号来读取、查找、修改、删除等等。
如果还是怕慢,你可以打开文件后,按区域划分为多个块,每个块用一个线程来读取,
当得到你要的数据后,让所有的线程都退出。
不然,你今天修改了,也许是正常的,你下次修改的时候,就不知道是什么位置了。
不能够准确定位。
如果是有数据结构(记录型文件)的,那你的可以定义编号,
然后按照编号来读取、查找、修改、删除等等。
如果还是怕慢,你可以打开文件后,按区域划分为多个块,每个块用一个线程来读取,
当得到你要的数据后,让所有的线程都退出。
#9
很快我就可以懂了,来学习一下
#10
顶