加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在reader.readLine()中检测第一行和最后一行?

发布时间:2020-12-14 05:07:07 所属栏目:Java 来源:网络整理
导读:我以下面的方式读取文件的每一行 BufferedReader in = new BufferedReader(new FileReader(inFile));while (null != (line = in.readLine())) {} 我想在第一行和最后一行单独进行一些验证.有没有 检查它是否是while循环中的第一行和最后一行 while (null !=
我以下面的方式读取文件的每一行
BufferedReader in = new BufferedReader(new FileReader(inFile));

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


}

我想在第一行和最后一行单独进行一些验证.有没有
检查它是否是while循环中的第一行和最后一行

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

    if(firstlineoffile) {
    }

    else if (lastlineoffile) {
    }

    else
    {
    }

}

解决方法

酷问题我打了一圈,这是一个 SSCCE,只是copy’n’paste’n’run它.
package com.stackoverflow.q2292917;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;

public class Test {

    public static void main(String... args) throws IOException {
        // Create test file.
        File file = new File("/test.txt");
        PrintWriter writer = new PrintWriter(file);
        writer.println("line 1");
        writer.println("line 2");
        writer.println("line 3");
        writer.println("line 4");
        writer.println("line 5");
        writer.close();

        // Read test file.
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(file));
            String next,line = reader.readLine();
            for (boolean first = true,last = (line == null); !last; first = false,line = next) {
                last = ((next = reader.readLine()) == null);

                if (first) {
                    System.out.println("first line: " + line);
                } else if (last) {
                    System.out.println("last line: " + line);
                } else {
                    System.out.println("normal line: " + line);
                }
            }
        } finally {
            if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {}
        }

        // Delete test file.
        file.delete();
    }

}

输出:

first line: line 1
normal line: line 2
normal line: line 3
normal line: line 4
last line: line 5

但是,我对初学者的可读性和可解释性提出质疑…;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读