【发布时间】:2018-06-15 18:24:25
【问题描述】:
我想使用 java 8 在文件中找到一个键(从 hashmap 中获取)。如果在文件中找到任何键,它应该打印为 true。下面是我的代码
public static void main(String[] args) {
String fileName = "C:\\Users\\ABC\\Desktop\\Paper_R2_Final.txt";
Map<String, String> myMap = new HashMap<String,String>();
myMap.put("ecological", "myFirstKey");
myMap.put("Survey", "mySecondKey");
myMap.put("Worth", "myThirdKey");
//read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(fileName),StandardCharsets.ISO_8859_1)) {
myMap.forEach((k,v)->System.out.println("key: " + k + ", value: " + v));
//Problem in the below line
System.out.println(stream.anyMatch(line->line.contains((CharSequence) myMap.keySet())));
} catch (IOException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
line.contains((CharSequence) myMap.keySet())你觉得这有什么作用? -
它给了我类转换异常。我明白这一点,但请原谅我对 java 8 很陌生。
标签: java lambda java-8 java-stream