用java8写一个从配置文件中读取数据,并将list中满足条件的数据移除的共通方法
时间: 2024-04-30 21:23:21 浏览: 117
java类中读取配置文件内容
下面是一个示例代码,其中假设配置文件名为config.properties,包含一个名为exclude的属性,其值为需要移除的数据的关键字,多个关键字之间用逗号分隔。
```
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
public class ConfigUtil {
public static List<String> removeExcluded(List<String> data) {
Properties props = new Properties();
try (FileInputStream fis = new FileInputStream("config.properties")) {
props.load(fis);
} catch (IOException e) {
e.printStackTrace();
}
String[] excluded = props.getProperty("exclude").split(",");
List<String> excludedList = Arrays.asList(excluded);
return data.stream()
.filter(d -> !excludedList.contains(d))
.collect(Collectors.toList());
}
public static void main(String[] args) {
List<String> data = new ArrayList<>();
data.add("apple");
data.add("banana");
data.add("orange");
data.add("pear");
System.out.println("Original data: " + data);
data = removeExcluded(data);
System.out.println("Data after removal: " + data);
}
}
```
该示例代码中,removeExcluded方法接收一个List<String>类型的数据,将其读入配置文件中的exclude属性,将其转换为一个列表,然后使用Java 8的Stream API对数据进行过滤,移除所有包含在exclude列表中的元素,并返回结果列表。在这里,我们假设配置文件与应用程序在同一目录下,因此我们可以使用相对路径来指定其位置。如果需要,可以根据需要进行更改。
阅读全文