`

java快速读取文本文件最后一行数据,文本文件非常大

阅读更多

public static void main(String[] args) throws Exception {
File file = new File("E:/a.txt"); // 100M
long start = System.currentTimeMillis();
String lastLine = readLastLine(file, "gbk");
long delt = System.currentTimeMillis() - start;
System.out.println(lastLine);
System.out.println("读取时间(毫秒):" + delt);

file = new File("E:/b.txt");// 仅一行文字
start = System.currentTimeMillis();
lastLine = readLastLine(file, "gbk");
delt = System.currentTimeMillis() - start;
System.out.println(lastLine);
System.out.println("读取时间(毫秒):" + delt);
}

public static String readLastLine(File file, String charset) throws IOException {
if (!file.exists() || file.isDirectory() || !file.canRead()) {
return null;
}
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(file, "r");
long len = raf.length();
if (len == 0L) {
return "";
} else {
long pos = len - 1;
while (pos > 0) {
pos--;
raf.seek(pos);
if (raf.readByte() == '\n') {
break;
}
}
if (pos == 0) {
raf.seek(0);
}
byte[] bytes = new byte[(int) (len - pos)];
raf.read(bytes);
if (charset == null) {
return new String(bytes);
} else {
return new String(bytes, charset);
}
}
} catch (FileNotFoundException e) {
} finally {
if (raf != null) {
try {
raf.close();
} catch (Exception e2) {
}
}
}
return null;
}

 

分享到:
评论

相关推荐

    Java 读写文件文本文件的示例

    Java中读写文本文件主要依赖于`InputStream`和`OutputStream`的使用,结合`Reader`和`Writer`接口的实现类如`BufferedReader`和`PrintWriter`,可以高效地完成文件的读取和写入操作。掌握这些核心类的使用是进行文件...

    java 删除某行和读写txt文件

    ### Java删除某行和读写TXT文件 在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的...

    java读取超大文本文件

    ### Java读取超大文本文件的关键技术点 在处理大数据量的文本文件时,Java 提供了多种方式来实现高效、低内存占用的文件读取操作。本文将围绕标题“java读取超大文本文件”及其相关描述和部分代码片段进行深入解析...

    JAVA简单的读写文本文件的代码

    每读取一行后,在其后添加一个换行符`\n`,以便保持原始文件的格式。 ### 2. 从`StringBuffer`中写出数据到文件 #### 知识点说明: `PrintStream`类可以方便地将`StringBuffer`中的内容写入输出流。在实际应用中,...

    java如何读取文件

    `readLine()`返回一行文本,直到文件结束,此时返回`null`。每读取一行,就将其追加到`StringBuffer`对象`contents`中。使用`System.getProperty("line.separator")`来添加适当的换行符,确保不同操作系统上的正确...

    java按行读取大文件并解析入库

    在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...

    Java实现按行分割大文件

    使用BufferedReader的readLine()方法可以读取文件的每一行数据。 知识点5: 使用StringBuilder的append()方法构建字符串 使用StringBuilder的append()方法可以将每行数据构建成一个字符串。 知识点6: 使用File的...

    完整版读文本文件(一行行的加入到列表框).rar

    这个“完整版读文本文件(一行行的加入到列表框).rar”压缩包显然包含了一个示例,展示了如何从文本文件中读取数据并将其逐行添加到列表框(ListBox)控件中。列表框是许多应用程序界面中的常见元素,用于显示一系列可...

    Android 逐行写入和读取文本文件Demo

    总结,Android Studio 3.2中的"Android 逐行写入和读取文本文件Demo"涵盖了基本的文件操作概念,包括文件流的获取、缓冲流的使用以及文件的读写方法。这些知识对于任何Android开发者来说都是基础且重要的。通过实践...

    java读取txt文件内容(java快速读取,程序已调试通)

    java读取txt文件,可以以文件路径构造这个流,... 然后使用这个流直接读取到文件,再使用reader构造BufferedReader,按行读取一整行的文本,作为字符串返回: BufferedReader buffReader = new BufferedReader(reader);

    java文本读取方法

    - **`BufferedReader#readLine()`方法:**用于读取一行内容,如果到达文件末尾则返回`null`。 #### 四、随机读取文件内容 随机读取文件内容指的是能够指定位置读取文件中的内容。这在处理大文件或者需要频繁跳转...

    java 按顺序读取文件

    // 打印读取的每一行 } // 关闭流,释放资源 br.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上述代码中,`BufferedReader`的`readLine()`方法用于按...

    编写程序,该程序实现打开一个文本文件,每次读取一行内容,将每行作为一个字符串读入,并将字符串输出显示到屏幕上。

    在Java编程语言中,打开和读取文本文件是一项基本任务,尤其对于初学者而言,这是理解文件I/O操作的关键步骤。下面我们将详细讲解如何编写一个Java程序,实现打开文本文件,逐行读取内容并将其作为字符串显示在屏幕...

    java把文本文件内容导入到数据库

    在Java中,我们可以使用`BufferedReader`或`Scanner`类来读取文件内容,然后通过`split()`方法根据分隔符拆分每一行,得到一个字段数组。 例如: ```java BufferedReader reader = new BufferedReader(new ...

    java 读取文件 文件读取操作

    在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...

    java海量数据读写优化方案

    对大数据文本文件读取(按行读取)的优化,目前常规的方案有三种,第一种LineNumberReader,第二种RandomAccessFile,第三种是内存映射文件在RandomAccessFile基础上调用getChannel().map(...);代码提供在...

    JAVA设计文本文件读取倒序排序

    在Java编程中,文本文件的读取和处理是常见的任务之一。这个名为"JAVA设计文本文件读取倒序排序"的项目,利用NetBeans IDE,实现了读取文本文件内容并进行倒序排序的功能,同时也提供了保存处理结果的能力。在这个...

    简单的用java实现读写文本文件的示例.doc

    这里包含了三个例子,即 1. 将文件读入到内存(这里是StringBuffer)的例子 2. 将内容中的文本写到文件 3. 将一个文件的内容读出来写入另一个文件中 ...三个例子可以独立存在,所以根据需要只看其中一个就行了

    Java 从txt文件查找数据

    在读取txt文件后,我们需要对每一行数据进行处理,这可能涉及到字符串的分割、查找子串、替换等操作。`String`类提供了许多实用的方法,如`split()`用于按分隔符拆分字符串,`indexOf()`和`lastIndexOf()`用于查找...

    java读写csv文件,中文乱码问题

    - 通过`BufferedReader`的`readLine()`方法逐行读取内容,处理每一行的数据。 3. **Java写入CSV文件**: - 使用`PrintWriter`或者`BufferedWriter`可以指定字符编码写入文件。例如: ```java FileOutputStream ...

Global site tag (gtag.js) - Google Analytics