java - 文件读取最后一行

标签 java vector io

我用 Java 编写了这段代码,用于从文件中读取数据并将值传递给 vector ,但似乎没有考虑最后一行。

int lines = 0;
Vector<String> vc = new Vector<String>();
BufferedReader in = new BufferedReader(new FileReader(FILE_NAME));      
while(in.readLine() != null){
    if(lines >= 1){
        vc.addElement(in.readLine());       
    }

    lines++;
}

System.out.println(vc.size());

for(int i = 0; i< vc.size(); i++){          
    System.out.println(vc.get(i));
}

文件的元素是

4
fdgdfs
sdfg
sdfg
sfdg
sdfg
例如,我想从第二行读取并将它们添加到 vector 中。打印结果为

3
sdfg
sfdg
null

问题出在哪里?

最佳答案

更改:

while(in.readLine()!=null)

至:

 while((line = in.readLine())!=null)

其中 line 是您应该在 while 循环之前定义的字符串。

然后使用行变量如下添加元素,

vc.addElement(line);

正如评论中所建议的,您可以使用 arraylist 而不是 vector , read this它解释了为什么你应该这样做。

关于java - 文件读取最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29877591/

相关文章:

java - linux top 命令的内存和 jconsole 堆的使用有很大不同

java - 如何用JGit逆序获取日志?

java - 创建一条不直的垂直线分隔符

c++ - 计算数组中的不同切片

c++ - 将 vector<string> 作为函数参数传递时出现问题 C++

c++ - 在C++中仅使用 “char”比较两个输入文件

java GC CMS-initial-mark 减慢对高负载 tomcat 生产服务器的查询

java - 查找 vector 的重复项并删除,保留平行 vector 的顺序

c++ - 理想的缓冲区大小是多少?

c - C语言读写大文件