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

前端之家收集整理的这篇文章主要介绍了java – 如何在reader.readLine()中检测第一行和最后一行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我以下面的方式读取文件的每一行
  1. BufferedReader in = new BufferedReader(new FileReader(inFile));
  2.  
  3. while (null != (line = in.readLine())) {
  4.  
  5.  
  6. }

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

  1. while (null != (line = in.readLine())) {
  2.  
  3. if(firstlineoffile) {
  4. }
  5.  
  6. else if (lastlineoffile) {
  7. }
  8.  
  9. else
  10. {
  11. }
  12.  
  13. }

解决方法

酷问题我打了一圈,这是一个 SSCCE,只是copy’n’paste’n’run它.
  1. package com.stackoverflow.q2292917;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8.  
  9. public class Test {
  10.  
  11. public static void main(String... args) throws IOException {
  12. // Create test file.
  13. File file = new File("/test.txt");
  14. PrintWriter writer = new PrintWriter(file);
  15. writer.println("line 1");
  16. writer.println("line 2");
  17. writer.println("line 3");
  18. writer.println("line 4");
  19. writer.println("line 5");
  20. writer.close();
  21.  
  22. // Read test file.
  23. BufferedReader reader = null;
  24. try {
  25. reader = new BufferedReader(new FileReader(file));
  26. String next,line = reader.readLine();
  27. for (boolean first = true,last = (line == null); !last; first = false,line = next) {
  28. last = ((next = reader.readLine()) == null);
  29.  
  30. if (first) {
  31. System.out.println("first line: " + line);
  32. } else if (last) {
  33. System.out.println("last line: " + line);
  34. } else {
  35. System.out.println("normal line: " + line);
  36. }
  37. }
  38. } finally {
  39. if (reader != null) try { reader.close(); } catch (IOException logorIgnore) {}
  40. }
  41.  
  42. // Delete test file.
  43. file.delete();
  44. }
  45.  
  46. }

输出

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

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

猜你在找的Java相关文章