【JAVA如何实现从最后一行读取文件】
2013-09-22 09:19
573 查看
JAVA如何实现从最后一行读取文件
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);// 输出为null,可以注释掉
}
nextend--;
}
nextend--;
rf.seek(nextend);
if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行
System.out.println(new String(rf.readLine()。getBytes("ISO-8859-1"), charset));
}
}
} 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");
}
}
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);// 输出为null,可以注释掉
}
nextend--;
}
nextend--;
rf.seek(nextend);
if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行
System.out.println(new String(rf.readLine()。getBytes("ISO-8859-1"), charset));
}
}
} 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");
}
}
相关文章推荐
- JAVA如何实现读取文件最后一行记录,在文件的结尾追加记录
- 如何在java中实现读文件(一行一行地读)和写文件(一行一行地追加写)
- JDK1.7 之java.nio.file.Files 读取文件仅需一行代码实现
- java读取.txt文件的最后一行
- Java实现从文件最后一行开始读
- 要求通过java读取文本并把文本中的每一行后面的三个成绩相加, 最后按从大到小的顺序输出到另一个文本文件中.
- java快速读取文本文件最后一行数据内容,文本文件非常大
- Java 如何读取文件下一行
- Java如何实现按指定行读取文件
- java 中读取文件最后一行信息
- java里如何使用输入流和输出流实现读取本地文件里内容和写出到本地文件里
- java创建一个类实现读取一个文件中的每一行显示出来
- Java如何实现按指定行读取文件
- 用asp实现读取文件的最后一行的代码
- java 倒序读取文件(最后一行开始读取)
- Java中如何实现读取文件!
- Java写到.txt文件,如何实现换行
- 【转】C#如何读取txt文件中每一行每一个数据
- java读取文件以字节流的形式读取 然后转化为字节流数组,最后经过SHA1加密生成返回16进制字符串存入数据库