社区
C语言
帖子详情
如何从一个较大文件的指定行 开始读取文件
seventynine
2012-03-16 04:19:14
一个文件2G,里边有一行内容char ss[32] = "abcdeftsfdtgddsdtg";具体在文件的哪个位置并不清楚
读文件的时候要偏移到文件的这一行开始读,然后对之后读出来的每一行内容做操作;
请问如何快速 偏移 定位到该行,并开始继续读后面的内容?
...全文
224
18
打赏
收藏
如何从一个较大文件的指定行 开始读取文件
一个文件2G,里边有一行内容char ss[32] = "abcdeftsfdtgddsdtg";具体在文件的哪个位置并不清楚 读文件的时候要偏移到文件的这一行开始读,然后对之后读出来的每一行内容做操作; 请问如何快速 偏移 定位到该行,并开始继续读后面的内容?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2012-03-19
打赏
举报
回复
[Quote=引用 9 楼 seventynine 的回复:]
引用 5 楼 zhao4zhong1 的回复:
fgets
你好,fgets太慢了,好几个G的文件,这什么时候可以扫到我要找的那行?
[/Quote]
要在电脑上实际运行测试程序执行快慢;
不要在人脑中估计程序执行快慢。
操作系统的文件缓存、硬盘上的高速缓存……是用来干什么的?!
nanjingnew4
2012-03-19
打赏
举报
回复
mmap内存映射,strstr找子串。这个方法等下去GOOGLE一下
JoeBlackzqq
2012-03-19
打赏
举报
回复
[Quote=引用 6 楼 qq120848369 的回复:]
mmap内存映射,strstr找子串。
[/Quote]
我也觉得这种方法是最快的。因为strstr会直接帮你搜索匹配的字符串的!
如果文件过大,可以每次映射一部分,没找到,再往后映射!
qiuhui00
2012-03-16
打赏
举报
回复
不是一次读一行,可以一次读固定字节数,只要字节数定的合适,应该也不会太慢把
seventynine
2012-03-16
打赏
举报
回复
[Quote=引用 2 楼 qiuhui00 的回复:]
个人觉得,可以先读取一部分(可以大一些)到buffer中,判断ss在不在其中,如果不在,接着往下再读一部分,一直到找到ss的位置,然后就可以开始处理了
[/Quote]你好,这样比较难,而且比较慢···
seventynine
2012-03-16
打赏
举报
回复
[Quote=引用 12 楼 wanyuan19890515 的回复:]
读成字符串了?就是上面说的buffer。在到字符串里查找?
[/Quote]就是一个字符串,是一个文件的某一行,现在要找到这一行,并从这一行开始读文件
奋斗小青年
2012-03-16
打赏
举报
回复
读成字符串了?就是上面说的buffer。在到字符串里查找?
seventynine
2012-03-16
打赏
举报
回复
[Quote=引用 7 楼 shyrgst 的回复:]
一行一行的读,读出后,利用strstr找匹配字符串。
之后在对相应的进行修改
[/Quote]你好,这样太慢了···
seventynine
2012-03-16
打赏
举报
回复
[Quote=引用 8 楼 querdaizhi 的回复:]
基本上很难...2G = 2*1024M = 2*1024*1024KB = 2*1024*1024*1024 byte
是不是将2g的数据划分为1024个2m的数据。然后2m的数据划分为1024个KB。然后用strcmp()逐行比较?
[/Quote]你好,实际不止 2G,应该有 5G多
seventynine
2012-03-16
打赏
举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
fgets
[/Quote]你好,fgets太慢了,好几个G的文件,这什么时候可以扫到我要找的那行?
querdaizhi
2012-03-16
打赏
举报
回复
基本上很难...2G = 2*1024M = 2*1024*1024KB = 2*1024*1024*1024 byte
是不是将2g的数据划分为1024个2m的数据。然后2m的数据划分为1024个KB。然后用strcmp()逐行比较?
shyrgst
2012-03-16
打赏
举报
回复
一行一行的读,读出后,利用strstr找匹配字符串。
之后在对相应的进行修改
qq120848369
2012-03-16
打赏
举报
回复
mmap内存映射,strstr找子串。
赵4老师
2012-03-16
打赏
举报
回复
fgets
qixing1115
2012-03-16
打赏
举报
回复
[Quote=引用 1 楼 gold_water 的回复:]
file open
file seek
file read
类似这样的函数
[/Quote]
不过不知道位置就不好说了,估计要全部读一遍,直到读到你想要的,不知道还没有有其它方法
女旺仔
2012-03-16
打赏
举报
回复
查找问题。2G文件不是特别大。可以找到一个(组)唯一的关键字,然后定位。如何找,那就要用一些简单的算法了,如果那些内容是你自己之前写入的,可以建立检索表,这样效率高。
qiuhui00
2012-03-16
打赏
举报
回复
个人觉得,可以先读取一部分(可以大一些)到buffer中,判断ss在不在其中,如果不在,接着往下再读一部分,一直到找到ss的位置,然后就可以开始处理了
gold_water
2012-03-16
打赏
举报
回复
file open
file seek
file read
类似这样的函数
python
读取
文件
指定
行
的三种方法
本文通过4个测试案例分析了在python中
读取
文件
指定
行
内容的方案,并得到了一些运
行
耗时的数据。从需求上来说,如果是对于小规模的数据,比如几百
行
规模的数据,建议使用readline循环遍历来操作,速度也相当不错,或者是linecache中的函数实现也是可以的,甚至可以直接用readlines将整个文本内容加载到内存中。...
python
较大
文件
写入与读取,
文件
太大内存崩溃?这里教你怎么做
文章目录
较大
文件
读取第一种第二种
文件
写入
较大
文件
读取 对于
文件
的读写操作可参考: https://blog.csdn.net/xdc1812547560/article/details/107860396 通过read()读取⽂件内容时会将⽂件中所有的内容全部读取出来。如果对于 读取的⽂件⽐较⼤的话。会⼀次性的将⽂件加载到内容中。容易导致内存泄 露。所以对于较⼤的⽂件。不要直接调⽤read() 第一种 read()可以接收⼀个size作为的参数。该参数⽤来
指定
要读取字符的数量。 默认值为-1,-1也就是要
三种方法Python
读取
文件
指定
行
,来看看你用过没?
我的心里只有学习
Python 逐
行
读取txt
文件
并生成列表
前言开始1. 载入
文件
2. 读取数据流3. 数据处理4. 关闭
文件
前言 我们在编写一些自动化脚本的时候,为了方便,经常需要以txt
文件
作为数据输入,今天就跟大家讨论一下如何对txt
文件
进
行
读取并生成对应的列表等程序可操作的数据载体。 开始 1. 载入
文件
这步就大家比较熟悉,
文件
操作中最基本的了。 因为我们只需要
读取
文件
,并不需要写入
文件
,所以在这里
指定
mode="r" 为只读模式(默认)。 f = open("C:/foo.txt", "r",encoding='utf-8') 此时就有了这.
Java 按
行
读取写入
文件
Java 按
行
读取写入
文件
,java.nio.file.Files:readAllLines方法以及java.io.FileWriter与java.io.BufferWriter方法的应用
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章