1.前言。
要保存当前读的记录,可以用java的类LineNumberReader.里面有getLineNumber()方法可以获得行数。
2.例子。
package com.redis;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class Ex7 {
public void dataReader(String nameFile, int start, int finish) {
if (start > finish) {
System.out.println("Error start or finish!");
return;
}
InputStream inputStream = null;
LineNumberReader reader = null;
try {
inputStream = new FileInputStream(new File(nameFile));
reader = new LineNumberReader(
new InputStreamReader(inputStream));
int lines = getTotalLines(new File(nameFile));
if (start < 0 || finish < 0 || finish > lines || start > lines) {
System.out.println("Line not found!");
return;
}
String line = reader.readLine();
lines = 0;
while (line != null) {
lines++;
if(lines >= start && lines <= finish){
//处理你读到的内容
System.out.println(line);
//记录当前行数
System.out.println("读到第:"+reader.getLineNumber()+"行");
}
line = reader.readLine();
}
inputStream.close();
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
System.err.println("IO Error");
System.exit(0);
}
}
private int getTotalLines(File file) throws IOException{
FileReader in = new FileReader(file);
LineNumberReader reader = new LineNumberReader(in);
String line = reader.readLine();
int lines = 0;
while (line != null) {
lines++;
line = reader.readLine();
}
reader.close();
in.close();
return lines;
}
public static void main(String[] args) {
//读第二行和第四行的信息。
new Ex7().dataReader("c:/data.txt", 2, 4);
//new Ex7().dataReader("data.txt",3,8);
}
}
3.后记.
例子程序是在http://www.myexception.cn/j2se/267711.html和http://asialee.iteye.com/blog/368489的基础上修改得还,感谢这两位无私的小编和楼主。
分享到:
相关推荐
本项目"JAVA多线程断电续传下载程序"就是这样一个实例,它利用Java的多线程特性来实现文件的下载,并具备断电续传功能,确保了下载过程的可靠性。下面将详细介绍相关知识点。 首先,我们来理解什么是多线程。在...
通过MODBUS,我们可以读取和写入PLC的寄存器,包括输入寄存器(只读)和输出寄存器(读/写)。 2. **OPC UA**:这是一种更现代、更安全的通信标准,提供了一个统一的接口来访问不同厂商的自动化设备,包括PLC。使用...
这可以通过读取文件并使用`FileInputStream`和`BufferedInputStream`等流操作类,按照预定大小(如1MB)逐个读取和存储到内存或磁盘上。 - 每个切片都有一个唯一的标识符,通常是文件偏移量和长度,以便在上传时...
基于go的大文件切片上传、断点续传、秒传.zip 1、如何唯一标示一个文件? 文件的信息后端会存储在mysql数据库表中。 在上传之前,前端通过 spark-md5.js 计算文件的md5值以此去唯一的标示一个文件。 spark-md5.js ...
Linux文件系统有严格的权限控制,分为读(r)、写(w)、执行(x)三个级别,针对所有者、组成员和其他用户。SUID、SGID和 Sticky 位是特殊的权限,提供额外的安全特性。 6. 硬链接与软链接: 硬链接允许多个文件名指向...
Java的AQZ文件解析器是一个简单的jar文件。 因此,您可以使用此库来读取“压缩的业余无线电问题数据格式”(* .aqz)。 aqz文件包含火腿无线电检查的所有问题和图像。 此格式由Oliver Saal,DM1OLI和...
总之,`ext3.x`和`2.x`文件系统在Linux环境下提供了文件存储的基础,而`commons-fileupload`库则为Java Web应用提供了一种优雅的多文件上传解决方案。理解这些知识点对于开发涉及文件上传功能的Web应用至关重要。
- **大小写敏感**:Java区分大小写,关键字全部为小写。 #### 1.30 注释的作用及标识方法 - **作用**:用于解释代码的目的和功能。 - **标识方法**:单行注释使用`//`,多行注释使用`/*...*/`。 #### 1.31 在...
断点续传技术是文件下载领域的一项重要创新,它允许在下载过程中因网络不稳定或计算机断电等原因中断后,能够从断点处继续下载,而无需重新开始整个下载过程。这一技术极大提高了文件下载的效率和可靠性,特别是在...
4. **I/O 操作**:文件系统需要支持读取和写入文件,这可以通过 Java 的 `InputStream` 和 `OutputStream` 类族来实现。对于内存中的文件系统,可以使用字节数组或字符串来存储文件内容。 5. **元数据(Metadata)*...
这样,当用户再次打开应用时,可以从文件读取并显示先前保存的数据。 文件存储虽然简单,但不适用于复杂的数据结构。对于更复杂的数据,如结构化的文本或对象,可能需要自定义文件格式或考虑使用SQLite数据库。此外...
8. **存储管理**:为了防止内存溢出,大文件下载时需要考虑分块读写。同时,确保在应用退出或设备休眠时,能正确保存下载状态,以便下次恢复。 在提供的`DownloadDemo`示例中,你可以看到这些概念的实际实现。通过...
### JAVA在SQLite嵌入式数据库中的应用:详细解析 #### 引言 在现代软件开发领域,数据库技术扮演着至关重要的角色,它不仅为数据的存储、检索提供了基础,还支持了复杂的数据处理和分析需求。传统的数据库管理...
当内存卡出现问题,如损坏、无法读取或显示错误,用户可能会面临数据丢失的风险。针对这种情况,我们可以采取一些措施来尝试修复内存卡,特别是对于Java(J2ME)平台上的游戏,因为这些游戏通常存储在内存卡上。本文...
4. **安全权限**:NTFS支持访问控制列表(ACL),允许对文件和目录设置精细的权限,如读取、写入、执行等。 5. **事务日志(Transaction Log)**:记录文件系统的更改,确保在系统崩溃或意外关机后能恢复数据一致性...
#添加Mat文件完成标记,初始化切分任务,以防止断电宕机后再启动找不到数据入口#为防止资源不足,在代码挂掉的之前处理成功的那一个的标记文件中进行标记#下一次代码运行时,从头开始,但是会先判断标记,如果标记过...
Python语法是区分大小写的,正确的打印多行字符串的方法是在每行末尾添加反斜杠(\)或使用三引号(""")包裹字符串。 总的来说,计算机科学涉及硬件、软件、编程语言、操作系统等多个方面。了解这些基本概念对于...
这个压缩包文件看起来是为了解决一个特定的问题:\.gradle\caches\transforms-1\files-1.1路径下的错误。这个路径涉及到Gradle的缓存机制,Gradle是一个广泛使用的自动化构建工具,尤其在Java和Android项目中。 ...
【多线程下载程序】是一种优化下载速度的技术,它通过将大文件分割成多个小片段,然后使用多个线程(即并发任务)同时下载这些片段,以提高整体下载效率。这种技术尤其适用于处理大型文件,如电影、软件安装包等,...
4. **文件通道和NIO**:Java NIO(New IO)提供了更高效的数据传输方式,如`FileChannel`,可以进行大块数据的传输,同时支持异步操作。 5. **文件操作库**:除了标准库,还有一些第三方库,如Apache Commons IO,...