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中读写文本文件主要依赖于`InputStream`和`OutputStream`的使用,结合`Reader`和`Writer`接口的实现类如`BufferedReader`和`PrintWriter`,可以高效地完成文件的读取和写入操作。掌握这些核心类的使用是进行文件...
### Java删除某行和读写TXT文件 在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的...
### Java读取超大文本文件的关键技术点 在处理大数据量的文本文件时,Java 提供了多种方式来实现高效、低内存占用的文件读取操作。本文将围绕标题“java读取超大文本文件”及其相关描述和部分代码片段进行深入解析...
每读取一行后,在其后添加一个换行符`\n`,以便保持原始文件的格式。 ### 2. 从`StringBuffer`中写出数据到文件 #### 知识点说明: `PrintStream`类可以方便地将`StringBuffer`中的内容写入输出流。在实际应用中,...
`readLine()`返回一行文本,直到文件结束,此时返回`null`。每读取一行,就将其追加到`StringBuffer`对象`contents`中。使用`System.getProperty("line.separator")`来添加适当的换行符,确保不同操作系统上的正确...
在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...
java读取txt文件,可以以文件路径构造这个流,... 然后使用这个流直接读取到文件,再使用reader构造BufferedReader,按行读取一整行的文本,作为字符串返回: BufferedReader buffReader = new BufferedReader(reader);
使用BufferedReader的readLine()方法可以读取文件的每一行数据。 知识点5: 使用StringBuilder的append()方法构建字符串 使用StringBuilder的append()方法可以将每行数据构建成一个字符串。 知识点6: 使用File的...
这个“完整版读文本文件(一行行的加入到列表框).rar”压缩包显然包含了一个示例,展示了如何从文本文件中读取数据并将其逐行添加到列表框(ListBox)控件中。列表框是许多应用程序界面中的常见元素,用于显示一系列可...
总结,Android Studio 3.2中的"Android 逐行写入和读取文本文件Demo"涵盖了基本的文件操作概念,包括文件流的获取、缓冲流的使用以及文件的读写方法。这些知识对于任何Android开发者来说都是基础且重要的。通过实践...
- **`BufferedReader#readLine()`方法:**用于读取一行内容,如果到达文件末尾则返回`null`。 #### 四、随机读取文件内容 随机读取文件内容指的是能够指定位置读取文件中的内容。这在处理大文件或者需要频繁跳转...
// 打印读取的每一行 } // 关闭流,释放资源 br.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上述代码中,`BufferedReader`的`readLine()`方法用于按...
在Java编程语言中,打开和读取文本文件是一项基本任务,尤其对于初学者而言,这是理解文件I/O操作的关键步骤。下面我们将详细讲解如何编写一个Java程序,实现打开文本文件,逐行读取内容并将其作为字符串显示在屏幕...
在Java中,我们可以使用`BufferedReader`或`Scanner`类来读取文件内容,然后通过`split()`方法根据分隔符拆分每一行,得到一个字段数组。 例如: ```java BufferedReader reader = new BufferedReader(new ...
在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...
对大数据文本文件读取(按行读取)的优化,目前常规的方案有三种,第一种LineNumberReader,第二种RandomAccessFile,第三种是内存映射文件在RandomAccessFile基础上调用getChannel().map(...);代码提供在...
在Java编程中,文本文件的读取和处理是常见的任务之一。这个名为"JAVA设计文本文件读取倒序排序"的项目,利用NetBeans IDE,实现了读取文本文件内容并进行倒序排序的功能,同时也提供了保存处理结果的能力。在这个...
这里包含了三个例子,即 1. 将文件读入到内存(这里是StringBuffer)的例子 2. 将内容中的文本写到文件 3. 将一个文件的内容读出来写入另一个文件中 ...三个例子可以独立存在,所以根据需要只看其中一个就行了
在读取txt文件后,我们需要对每一行数据进行处理,这可能涉及到字符串的分割、查找子串、替换等操作。`String`类提供了许多实用的方法,如`split()`用于按分隔符拆分字符串,`indexOf()`和`lastIndexOf()`用于查找...
在Java编程中,读取文本文件是常见的任务之一,这对于处理数据、日志记录或从文件中获取配置信息等场景非常有用。以下是如何使用Java API来读取文本文件的详细步骤,以标题“Java如何读取文本文件”和提供的代码为例...