`
colorlife
  • 浏览: 130527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

从文件末开始读

阅读更多

http://topic.csdn.net/u/20071228/17/08df86d6-f86e-4b39-ad9c-66aa957e49ae.html

 

 

package test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class FromEndRF {
  public static void read(String filename) {
    read(filename, "GBK");
  }

  public static void read(String filename, String charset) {

    RandomAccessFile rf = null;
    try {
      rf = new RandomAccessFile(filename, "r");
      long len = rf.length();
      long start = rf.getFilePointer();
      long nextend = start + len - 1;
      String line;
      rf.seek(nextend);
      int c = -1;
      while (nextend > start) {
        c = rf.read();
        if (c == '\n' || c == '\r') {
          line = rf.readLine();
          if (line != null) {
            System.out.println(new String(line.getBytes("ISO-8859-1"), charset));
          }else {
            System.out.println(line);
          }
          nextend--;
        }
        nextend--;
        rf.seek(nextend);
        if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行
          System.out.println(rf.readLine());
        }
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if (rf != null)
          rf.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

  public static void main(String args[]) {
    read("d:\\2.txt", "gbk");
  }
}
 

 

 

 

分享到:
评论

相关推荐

    C语言文件操作及函数大全

    “at+” 读写打开一个文本文件,允许读,或在文件末追加数据 “rb+” 读写打开一个二进制文件,允许读和写 “wb+” 读写打开或建立一个二进制文件,允许读和写 “ab+” 读写打开一个二进制文件,允许读,或在文件...

    C语言 以字符形式读写文件详解及示例代码

    在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。本节介绍以字符形式读写文件。 以字符形式读写文件时,每次...EOF 是 end of file 的缩写,表示文件末

    VB读取数据文件示例

    EXE末插入字符串 读取 显示 VB读取数据文件示例

    Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 ... print contents # 输出时在最后会多出一行(read()函数到达文件末会返回一个空字符,显示出空字符就是一个空行) print '------------' print contents.rstrip()

    C语言程序设计标准教程

    如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。 2. 每写入一个字符,文件内部位置指针向后移动一个字节。 3. fputc函数有一个返回值,如...

    文件操作与字符处理

    现要求读取该文本文件内容,统计文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按序输出全部单词)。...

    高级图形学期末大作业.rar_23R_人运动模型_读取obj文件

    实现机器人带光照的绘制和运动变换。通过glPushMatrix() 和glPopMatrix()绘制出机器人层次结构模型和几何变换,要求实现机器人手、脚、头、肩膀的旋转等几何变换,能够实现机器人走路的效果。同时机器人应打上光照。

    C语言综合性实验a:文件操作与字符处理.zip

    现要求读取该文本文件内容,统计文章中每个单词出现的次数, 并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出, 不足5个单词时,按序输出全部单词)。程序中...

    CANjoiner安装程序-1.1.zip

    该CANjoiner软件为本人开发的软件,基于LabVIEW 2015开发而成,能够自动读取用户选择目录下后缀为can、txt、asc、csv四种格式的CAN数据文件,并能自动读取文件的大小、所包含的CAN报文数量、首帧时间、末帧时间、...

    ChatGPT科研神器:润色论文,还能帮你读代码

    同样可以在输入框里指定论文文件的目录,然后点击“读tex论文写摘要”按钮,ChatGPT就会自动读取文件夹中的tex文件并进行分析。 不过,目前这一工具只支持tex格式的论文。issue区已经有小伙伴第一时间许愿增加对PDF...

    PHP按行读取文件时删除换行符的3种方法

    PHP按行读取文件 去掉换行符”\n”: 第一种:复制代码 代码如下:$content=str_replace(“\n”,””,$content);echo $content;或者:复制代码 代码如下:$content=str_replace(array(“\n”,”\r”),””,$content);...

    第12章知识点小结和常见错误小结1

    本章知识点小结内容实例备注定义文件指针打开文件文件的打开方式w 表示写文本文件,r 表示读文本文件wb 表示写二进制文件,rb 表示读二进制文件a 表示向文件末

    2000-2021年6月末地级市逆温数据.rar

    2000-2021年6月末地级市逆温数据.rar 1、数据格式:CSV格式,直接使用 Excel 打开会乱码,推荐使用 Stata 或者 R 语言读取。 2、时间跨度:2000.1.1-2021.6.30 3、区域范围:全国 4、指标说明: 原始数据为全球42个...

    c语言程序文件的写法-C语言-文件.pdf

    允许读写" ""wb+" " 读写打开或者建⽴⼀个⼆进制⽂件,允许读写 " ""ab+" " 读写打开⼀个⼆进制⽂件,允许读,或在⽂件末追加数据" 说明: 由r、w、a、t、b、+六个字符拼成,个字符的意义: r(read):读 w(write):...

    linux操作系统培训资料.pptx

    我们打开这个设备文件,然后写入数据,我们写入的数据就会从串口发送出去,我们读入数据,就会读取到从串口收到的数据。 如果我们想控制串口的速率、校验位、码位的长度,我们只需要调用ioctl函数,然后传入相应的...

    Linux操作系统作业-参考答案资料.pdf

    等,它们的功能分别是删除光标所在的字符、删除光标所在的行、删除从光标所在处到行末的所有字符、删除从光标所在处到屏幕上方的所有字符、删除从光标所在处到屏幕下方的所有字符、删除从光标所在处到屏幕下方的...

    Linux复习题综合练习

    A: 任何用户皆可读取、可写入 B: root 可以删除该目录的文件 C: 给普通用户以文件所有者的特权 D:文件拥有者有权删除该目录的文件 22、什么命令用来查看硬盘被占用了多少空间和剩余多少空间? (单选题) A : ...

    《Linux网络操作系统配置与管理》试卷5套带答案-期末考试AB卷自测卷题库.doc

    * 在Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。 * CD-ROM 标准的文件系统类型是ISO 9660。 知识点2:用户权限 * 唯一标识每一个用户的是UID和用户名。 * 文件的权限可以用数值形式表示,例如drw-...

    Linux复习题附答案.pdf

    * Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。 * Linux文件系统中每个文件用inode来标识。 二、权限管理 * 文件权限一共10位长度,分成四段,第三段表示的内容是文件所有者所在组的权限。 * 某...

Global site tag (gtag.js) - Google Analytics