public class ReverseReaderFile {
private RandomAccessFile randomAccessFile = null;
private long length = 0;
private long index = 0;
private ReverseReaderFile(File file) throws IOException{
this.randomAccessFile = new RandomAccessFile(file, "r");
this.length = this.randomAccessFile.length();
this.index = this.length - 1;
}
public static ReverseReaderFile newInstance(String path) throws IOException{
return ReverseReaderFile.newInstance(new File(path));
}
public static ReverseReaderFile newInstance(File file) throws IOException{
if (file == null || !file.exists() || !file.isFile()){
return null;
}
return new ReverseReaderFile(file);
}
/**
* 获得文件长度
* @auther lupingui
* 2010-1-5 下午05:09:00
* @return
*/
public long getLength(){
return this.length;
}
/**
* 判断是否可继续往下读取
* @auther lupingui
* 2010-1-5 下午05:09:08
* @return
*/
public boolean next(){
return this.index >= 0;
}
/**
* 读取单行信息(去掉了回车换行)
* @auther lupingui
* 2010-1-5 下午05:09:34
* @return
* @throws IOException
*/
public String readLine() throws IOException{
StringBuffer line = new StringBuffer();
char c;
while(this.index >= 0){
this.randomAccessFile.seek(this.index);
c = (char)this.randomAccessFile.read();
this.index--;
if (c == '\n' || c == '\r'){
if (line.length() < 1){
continue;
}
break;
}
line.append(c);
}
return line == null ? null : line.reverse().toString();
}
/**
* 关闭输出流
* @auther lupingui
* 2010-1-5 下午05:15:19
* @throws IOException
*/
public void close() throws IOException{
this.randomAccessFile.close();
}
}
目前不能支持中文。
分享到:
相关推荐
在Java编程中,倒序读取文件是一种常见的需求,例如在日志分析或者处理大量文本数据时。本示例将详细介绍如何使用Java实现这一功能,同时提供了一个实用的`FileUtil`工具类作为参考。 首先,`FileUtil`类包含两个...
这个名为"JAVA设计文本文件读取倒序排序"的项目,利用NetBeans IDE,实现了读取文本文件内容并进行倒序排序的功能,同时也提供了保存处理结果的能力。在这个过程中,涉及到的关键知识点包括: 1. **Java I/O流**:...
### Java程序读取服务器端数据文件的解决方法及比较 #### 概述 在现代软件开发过程中,尤其是在网络编程领域,Java作为一种强大的编程语言被广泛应用。然而,在开发客户端程序时,经常会遇到Java程序所定义与使用...
在信息技术领域,"文字倒序工具"是一种软件应用程序,其主要功能是接收用户输入的文字或字符串,并将其按照字符顺序的反向进行显示。这种工具通常被用作娱乐或者特定的文本处理需求,比如在网络论坛上灌水,通过倒序...
在Java编程中,"基于java采用管道过滤器风格编写一个英文句子转大写并倒序的功能"是一项常见的任务,它涉及到输入输出流、字符转换以及字符串处理等多个知识点。这一过程通常利用Java的IO流和过滤器(Filter)设计...
1. **打开文件**:使用编程语言(如C++、Python或Java)的文件操作函数打开BMP文件。 2. **读取文件头**:BMP文件头包含两个部分:BITMAPFILEHEADER(BFH)和BITMAPINFOHEADER(BIH)。BFH包含文件的基本信息,如...
RandomAccessFile是用来访问那些保存数据记录的文件的,你可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类于操作文件。 RandomAccessFile不属于...
在这里,`main`方法创建`File`对象,获取文件长度,创建对应大小的字节数组,然后调用`Input`读取文件内容,`Backward`倒序字节数组,最后调用`Output`将倒序后的字节写回文件。 通过这个课程设计,学生不仅能够...
首先,你需要获取HZK16编码的汉字点阵数据,这通常通过读取特定的字体库文件来完成,这些文件包含了所有汉字的点阵信息。其次,为了适应某些硬件接口的要求,可能需要对这些数据进行处理,将其转换为纵向排列并且...
逆序输出是编程中常见的操作,它可以用于各种场景,比如排序算法的逆序输出结果、倒序读取文件内容或者实现某些特定逻辑。理解并熟练掌握这种技巧对于Java开发者来说是至关重要的,它能帮助你在处理数据时更加灵活...
在`H.java`这个文件中,应该包含了上述的代码实现。运行这个程序,用户就可以看到根据输入行数生成的等腰杨辉三角了。注意,等腰在这里可能意味着用户可能期望输出特定形状的三角,如仅显示奇数行或偶数行,或者具有...
6. 文件操作:读取和切换图片目录,可能涉及到`java.nio.file`包,特别是`Files`和`Paths`类,用于处理文件路径和读取目录。 7. 多线程:为了保证用户界面的流畅性,音乐播放和图片加载可能需要在独立的线程中进行...
程序首先写入一个整型数组`data_arr`的元素到名为"temp.dat"的文件中,然后倒序读取数组,每隔两个元素读取一次,同时在文件末尾写入字符串"Good morning!"。程序最后按顺序读取文件,输出结果是99 65 1 23 66 "Good...
6. 数据处理:由于BMP文件通常采用倒序存储,可能需要对读取的像素数据进行上下翻转。 7. 保存处理后的图像:如果需要保存,可以创建一个新的BMP文件,按照BMP文件格式的结构重新写入数据。 在这个过程中,可能会...
这个文件夹包含元数据信息,主要用于构建Java的JAR文件。在LVBarcode项目中,可能包含了MANIFEST.MF文件,它定义了JAR的主类和其他属性,使得程序能够正确运行。 8. **集成开发环境(IDE)支持**: 开发Java项目...
1. 输入/输出流(IO流):`BufferedReader` 用于从标准输入读取用户输入,`FileOutputStream` 和 `FileReader` 分别用于写入和读取文件。`InputStreamReader` 是连接字节流和字符流的桥梁。 2. 正则表达式:`...
该程序使用RandomAccessFile类来读写文件temp.dat,并将数据数组写入文件中,然后读取文件中的数据。该程序使用了try-catch语句来处理IO异常。 知识点: * Java的IO流操作:RandomAccessFile、IOException * 文件...
实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 315 实例246 控制窗体加载时的位置 315 实例247 设置窗体在屏幕中的位置 315 实例248 从上次关闭位置启动窗体 316 实例...