package com.sf._03_properties_config;

import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;

public class TestProperties {

    public static void main(String[] args) throws IOException {
        Scanner scanner = null;
        FileInputStream fileInputStream = null;
        // 1. 初始化Scanner，确保控制台输入流正常
        scanner = new Scanner(System.in);
        System.out.println("请录入用户名：");
        String name = scanner.nextLine(); // 改用nextLine()，兼容含空格的输入
        System.out.println("请输入密码：");
        String password = scanner.nextLine();

        // 2. 加载配置文件（建议用相对路径，避免硬编码绝对路径）
        Properties properties = new Properties();
        // 方式1：相对路径（推荐，需确保resources目录在classpath下）
        // fileInputStream = new FileInputStream("src/main/resources/user.properties");
        // 方式2：保留绝对路径（需确认路径正确）
        File configFile = new File("D:\\ideaproject\\java0913\\java-base-project10\\day23\\resources\\user.properties");

        fileInputStream = new FileInputStream(configFile);
        properties.load(fileInputStream);

        // 3. 获取配置文件中的账号密码
        String username = properties.getProperty("username");
        String passwd = properties.getProperty("password");

        // 4. 校验（增加空值判断，避免NullPointerException）
        if (username == null || passwd == null) {
            System.out.println("配置文件中未配置username或password！");
        } else if (name.equals(username) && password.equals(passwd)) {
            System.out.println("登录成功");
        } else {
            System.out.println("登录失败");
        }
    }
    /**
     * 加载user.properties 文件属性信息
     * 并且获取到配置文件相关属性
     * <p>
     * 在控制台当中录入账号和密码
     * 如果控制当中录入账号和密码 和配置文件当中账号和密码是一样就表示登录成功
     * 否则就表示登录失败
     */

    /**
     * 创建一个Employee id name age email
     * 在配置文件中配置employee_id=1  employee_name=zhangsan  employee_age=10  employee_email=xxx
     *
     * 要求把配置文件属性设置到employee中并且打印出来
     *
     */
    @Test
    public void test() throws IOException {
        FileInputStream fileInputStream = new FileInputStream(new File("D:\\idea1project\\java0913\\java-base-project10\\day23\\resources\\employee.properties"));

        // 创建Properties 加载属性文件
        Properties properties = new Properties();
        properties.load(fileInputStream);

        String id = properties.getProperty("id");
        String name = properties.getProperty("name");
        String age = properties.getProperty("age");
        String email = properties.getProperty("email");
        // 把配置文件属性值设置对象中
        Employee employee = new Employee();
        employee.setId(Long.parseLong(id));
        employee.setName(name);
        employee.setAge(Integer.valueOf(age));
        employee.setEmail(email);
        System.out.println(employee);
        // 关闭资源
        fileInputStream.close();
    }
}
