由于您的 CSV 文件中只有 2 行您感兴趣并且您不希望包含第 3 行,因此您可以使用 limit 操作将这些行截断为 2。
Stream<String> stream = Files.lines(Paths.get(file1)).limit(2)
更新:
您似乎事先不知道要检索的行数,因此无法使用上述解决方案,在这种情况下,如果您说“空白”是指具有“,,,,,”的行,那么从 Java-9 开始,您可以使用 takeWhile:
Stream<String> stream = Files.lines(Paths.get(file1))
.takeWhile(s -> !s.equals(",,,,,,"))
或者如果逗号的数量可能不同,那么您可以这样做:
Stream<String> stream = Files.lines(Paths.get(file1))
.takeWhile(s -> !s.startsWith(","))
否则,如果你说空白是指空,那么你可以这样做:
Stream<String> stream = Files.lines(Paths.get(file1))
.takeWhile(s -> !s.trim().isEmpty())
但是,如果您因任何原因无法使用 JDK-9,则一旦发现空行就无法停止,相反,您需要像这样filter 他们:
Stream<String> stream = Files.lines(Paths.get(file1))
.filer(s -> !s.trim().isEmpty())
或:
Stream<String> stream = Files.lines(Paths.get(file1))
.filter(s -> !s.equals(",,,,,,"))
或:
Stream<String> stream = Files.lines(Paths.get(file1))
.filter(s -> !s.startsWith(","))
取决于空白行对你意味着什么。