Я пытался переписать нижеприведенное использование Stream API.Я не могу понять, как добраться до карты (или полей), чтобы установить пару значений ключа для System.setProperty (k, v)
Мои данные - это просто строки, между которыми есть пробел, которые разделяются на ключ и значение соответственно:
foo bar
mykey myvalue
nextkey nextvalue
Мой рабочий исходный код находится здесь:
try {
Scanner scanner = new Scanner(Paths.get("/path/to/file.txt"));
while(scanner.hasNextLine()){
String line = scanner.nextLine();
String[] array = line.split(" ");
if(array.length == 2){
System.setProperty("twitter4j.oauth." + array[0], array[1]);
}
}
} catch (IOException e) {
e.printStackTrace();
}
Помещение здесь разбитого образца, хотя я был на всем протяженииmap (стон) пытается записать это с помощью потока, но вот одна итерация этого, чтобы продемонстрировать, что я пытался: -p
Stream<String> lines = null;
try {
lines = Files.lines(Paths.get("/Users/bellis/dev/data/twitter.txt"));
} catch (IOException e) {
e.printStackTrace();
}
String[] words = lines.collect((Collectors.joining("\n"))).split(" ");
System.out.println("twitter4j.oauth." + words[0] + " " + words[1]);
Вышеприведенное, конечно, неверно, и я знаю, что есть многолучшие способы написать это, используя функции и другие распространенные идиомы Stream, но я просто не могу понять это правильно.Как бы вы порекомендовали написать это, используя Stream и функциональный API?