【发布时间】:2016-09-25 13:00:15
【问题描述】:
我有一个文本文件imgui.ini,其中包含:
[Debug]
Pos=7,79
Size=507,392
Collapsed=0
[ImGui Demo]
Pos=320,5
Size=550,680
Collapsed=0
对于每个“元素”,我总是有Pos、Size 和Collapsed,我需要阅读它们。
如果可能,我想使用 java 8 流。
是否可以模拟 switch 语句的行为?
try (Stream<String> stream = Files.lines(Paths.get(context.io.iniFilename))) {
...
/*
switch(string) {
case "Pos":
settings.pos = value;
break;
case "Size":
settings.size = value;
break;
case "Collapsed":
settings.collapsed = value;
break;
}
*/
} catch (IOException e) {
}
}
【问题讨论】:
-
您的问题不清楚 - 您要打开什么?听起来您可能想要首先编写一个读取行并返回
Map<String, ConfigurationBlock>的方法(其中ConfigurationBlock是您自己的类型,或者可能使用Properties)。 -
首先展示你想要在没有 Stream 的情况下使用普通 switch 语句做什么
-
我认为当输入的顺序无关紧要时,流是理想的。但是,在您的 ini 示例中,行的顺序至关重要。因此,顶级流的元素不应该是文本行,而是配置部分。每个部分都由一系列不区分顺序的文本行组成。
-
不幸的是,@MaartenBodewes 看起来是这样。我有点希望有一种优雅的方法
标签: java java-8 switch-statement java-stream