現在Javaを学んでいて、私が主な問題(マイナーな問題)と混同しています。ストリームを使用してテキストファイルを読み込む - lamba式の変数
私はテキストファイルを読み込み、各行の文字列を扱い、変数を追加して処理を続けます。 例:私は3行のテキストファイルを持っていて、各行の終わりに変数を追加して、各行に1つずつアップさせたいと思います。
私はすべてのプログラムを作りましたが、私はまだ十分に後ろを取ることはできません。
私のテキストファイル "test.txt"には、 "Line1"、 "Line2"、 "Line3"という3行のテキストがあり、各行の後に値500のtestNumという名前の整数があります。
私のコードは次のとおりです:
String fileName = "test.txt";
int testNum = 1024;
Stream<String> readFileStream = null;
try {
readFileStream = Files.lines(Paths.get(fileName));
} catch (IOException e) {
e.printStackTrace();
}
readFileStream.forEach(line -> {
System.out.println(line+testNum);
testNum++;
});
今、私は問題はラムダ式であることを理解しています。誰かがラムダ式のローカル変数を必要とし、外部から宣言された変数にアクセスできない理由を私に説明することはできますか?
また、私はそれぞれの代わりに使用する私のコードを変更しようとしましたが、それぞれの「ストリーム」、例えば:
for(String line : readFileStream){
}
事前のおかげでたくさんのために適用されないようです。
特定の文字列のコンシューマを作成することができます。.. http://www.lambdafaq.org/what-are-the-reasons-for-the-restriction-to-effective-immutability/ – Jobin