如何从文件末尾往前一行一行的读取

wuhailq 2007-03-22 04:09:01
谢谢
...全文
1127 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2007-03-24
  • 打赏
  • 举报
回复
我的回复你看不懂?
文本文件当然可以用二进制方式读
比如你要读后面10行
实例化一个FileStream对象,定义一个byte数组(可以用内部缓冲区默认大小定义为4096字节)作为缓冲区,Seek到文件长度-4096,Read到缓冲区,遍历缓冲区,如果回车换行符不足10个,继续向前Seek,再读到缓冲区,循环往复,直到读够为止~
wuhailq 2007-03-23
  • 打赏
  • 举报
回复
就是文本文件呀,要不然怎么一行一行的读呢,比如一个日志文件,按照最近的时间顺序读出来。各位的回答都不错,我是想ReadLine();是从头读到尾的,但是反过来,从尾读到头就没有函数了,比如从文件尾往上读取10行,怎么办?当然可以把文件所有行读到数列,但是需要把文件从头读到尾,如果文件很大,内存和效率都是问题。怎么办?
王集鹄 2007-03-22
  • 打赏
  • 举报
回复
唉,楼主问题不描述清楚,不能怪我考虑不周

“如何从文件末尾往前一行一行的读取”勉强估计是文本文件

一般楼主不跟贴,我是不会再提供方案的 :)
viena 2007-03-22
  • 打赏
  • 举报
回复
只能用二进制方式读取
设定一个合适大小的byte数组作为缓冲区
通过计算定位Seek到适当的位置(比如第一次定位到文件长度减缓冲区长度)
遍历缓冲区,查找回车换行符
选取其中的内容转为字符串~
sanniko 2007-03-22
  • 打赏
  • 举报
回复
先顺序一行行读进去,再倒排序.
superbug1984 2007-03-22
  • 打赏
  • 举报
回复
文件没有换行符,那就是只有一行咯

这个问题要lz怎么看了,一行的文件当然读一次就搞定了
viena 2007-03-22
  • 打赏
  • 举报
回复
zswang(伴水清清)(专家门诊清洁工)的方案可行性不强

如果文件不大,当然可以全部读入内存,但不如用字符串数组更实惠些
如果文件很大,就不可行了~
viena 2007-03-22
  • 打赏
  • 举报
回复
seek到最后是可以的,但没有一行一行的概念了
不可能倒序读,定位到哪里是个问题
如果文件里面没有换行符呢?
jrl5365 2007-03-22
  • 打赏
  • 举报
回复
zswang(伴水清清)(专家门诊清洁工) ( ) 信誉:100 Blog
高人的思路很好啊?先来个顺序读再反过来读就可以了
superbug1984 2007-03-22
  • 打赏
  • 举报
回复
貌似lz的意思是要直接从文件读取?

我的考虑是将文件流指针直接指到最后然后往前移 :|
lsj_zrp 2007-03-22
  • 打赏
  • 举报
回复
楼上的注意不错
可以考虑用堆栈 Stack
王集鹄 2007-03-22
  • 打赏
  • 举报
回复
List<string> vList = new List<string>();
先顺序读到列表中
vList.Add(vLine);
然后再从列表中倒序读出
for (int i = vList.Count - 1; i >=0; i--)
//todo
ruan_hg 2007-03-22
  • 打赏
  • 举报
回复
Readline()
leixueqiyi 2007-03-22
  • 打赏
  • 举报
回复
写循环
for( inti=100;i〉0;i--)
 本套课程为Python基础篇的第4套课程,主要讲解python文件处理的系统知识体系。       首先讲解Python文件的概念以及常用读写函数open()、Read()、write()、close()以及文件读写访问标志。 其次讲解文件的典型应用文件的复制算法,以及with as 关键字简化资源关闭。本课程末尾讲解文件与目录的创建、删除、重命名、文件与目录的绝对路径与相对路径技术等。       课程末尾需要重点说明的是,本系列课程均设置课堂练习与课后作业集中讲解(录播形式),让初学者通过大量练习与阶段项目等手段有效强化学习效果,保证学习过程中的技能全面提升!教学特点:      使用大量(3D/2D)动画与图示方式,由浅入深讲解Python编程。配之海量课堂练习/课后作业的大量讲解,以及刘老师风趣幽默的课堂幽默感染力,让你轻松加愉悦的心情下开启Python系统学习之旅,系统与深入掌握当今最为火热的人工智能御用编程语言!      本Python教程分为入门、基础、中级、进阶篇,共15套教程组成。突出教学特点如下:      1:为弥补线下“互动性”与知识点的高“吸收率”,每套课程均设置“课堂练习”、“课后作业”、“阶段项目实战”、以及每个章节末尾的“课程笔记”整理环节,不断强化学员知识点的不断巩固与知识体系的梳理,不遗漏任何重要知识点。 以上四大自学环节设置,保证自学过程中知识的反复锤炼与全面吸收,最终获得优秀学习效果!      2:本Python系列课程(15套)从入门篇开始,完全从真正零基础开始讲起,特别适合中小学生以及大学非计算机专业的初学者开始入门!      3:大量采用3D/2D图形化示例讲解,对于Python抽象与复杂问题全部采用3D动画演示。      4:每套课程开始均设置“课程概述”: 讲解本套课程的前导课程、后续课程,以及本套课程的知识体系内容,帮助学习者更好的掌握课程的来龙去脉。             更多学习内容以图示方式供广大学员参考如下:

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧