【发布时间】:2015-07-24 12:34:48
【问题描述】:
FileWriter writer = new FileWriter(output_file);
int i = 0;
try (Stream<String> lines = Files.lines(Paths.get(input_file))) {
lines.forEach(line -> {
try {
writer.write(i + " # " + line + System.lineSeparator());
} catch (Exception e) {
e.printStackTrace();
}
}
);
writer.close();
}
我需要用行号写行,所以我尝试在 .forEach() 中添加一个计数器,但我无法让它工作。我只是不知道把 i++ 放在哪里;进入代码,到目前为止,随意乱搞并没有帮助。
【问题讨论】:
-
在循环外声明一个int,设置为0,每次迭代增加。
-
@Stultuske 这行得通吗?你试过了吗?请注意,这里没有任何循环,但有一个 lambda。
-
这就是问题所在,我有一个 int i = 0;在 lambda 之外,但我不能让它在每个 for.Each() 循环中增加。 Stultuske 既不阅读代码也不阅读问题,只阅读主题。
-
你试过 writer.write(i++ + " # " + line + System.lineSeparator());
-
我这里没有安装 Java 8,所以无法尝试。但应该有办法让它发挥作用。
标签: java foreach java-stream line-numbers