一 Properties 集合
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
// 创建对象
Properties properties = new Properties();
// 有一些与IO相关的方法
// load(Reader in) Reader 是 FileReader 输入字符流的父类
// load(InputStream in) InputStream FileInputStream 字输入节流的父类
// 将文件中的内容读取到双列集合 Properties 中
// Properties 只能存储 键值对
// 文件中的内容有要求:
// key=value
// key=value
// ...
// load只能加载这样中文件中的内容到Properties中
// properties.load(new FileReader("day09_IO/names.txt"));
properties.load(new FileInputStream("day09_IO/names.properties"));
System.out.println(properties);
}
}
//使用类加载器对其配置文件
InputStream resourceAsStream = ConfigLoader.class.getClassLoader()
.getResourceAsStream("config.properties");
//写入prop集合
try {
prop.load(resourceAsStream);
} catch (IOException e) {
e.printStackTrace();
}
二 Flink 自带工具类-ParameterTool
image.png
public static ParameterTool parameterTool = null;
static {
try {
// 加载属性文件,读取为字节流对象
InputStream inputStream = ConfigLoader.class.getClassLoader().getResourceAsStream("config.properties");
// 通过InputStream字节流创建ParameterTool实体类对象
parameterTool = ParameterTool.fromPropertiesFile(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//todo 1.设置流式执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 设置加载属性文件中数据 -> ParameterTool,为应用程序运行时全局参数,可以在flink程序任意代码中获取参数值,方便使用
env.getConfig().setGlobalJobParameters(parameterTool);
网友评论