자바 CMD 방식 으로 레 지 스 트 를 읽 고 임의의 키 로 코드 실천

그림 에서 보 듯 이 레 지 스 트【HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7】노드 의【DateTime】값 을 읽 어야 합 니 다.

직접 코드 올 리 기:

package com.beibei.common.util.cmd;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*         
* @author   
* @date 2019 6 19   8:21:02
*/
public class RegistryUtil {
private static Logger logger = LoggerFactory.getLogger(RegistryUtil.class);
/**
* <pre>
*                
* </pre>
* @author   
* @date 2019 6 19   8:43:56
* @param nodePath
* @return
*/
public static Map<String, String> readNode(String nodePath) {
Map<String, String> regMap = new HashMap<>();
try {
Process process = Runtime.getRuntime().exec("reg query " + nodePath);
process.getOutputStream().close();
InputStreamReader isr = new InputStreamReader(process.getInputStream());
String line = null;
BufferedReader ir = new BufferedReader(isr);
while ((line = ir.readLine()) != null) {
String[] arr = line.split(" ");
if(arr.length != 4){
continue;
}
regMap.put(arr[1], arr[3]);
}
process.destroy();
} catch (IOException e) {
logger.error("       , nodePath: " + nodePath, e);
}
return regMap;
}
/**
* <pre>
*            key  
* </pre>
* @author   
* @date 2019 6 19   8:43:24
* @param nodePath
* @param key
* @return
*/
public static String readValue(String nodePath, String key) {
Map<String, String> regMap = readNode(nodePath);
return regMap.get(key);
}
public static void main(String[] args) {
String paramValue = RegistryUtil.readValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\EasyDrv7", "DateTime");
System.out.println(paramValue);
}
}
CMD 명령【reg query HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7】을 통 해 노드 의 모든 키 쌍 을 읽 고 분석 을 통 해 우리 가 필요 로 하 는【DateTime】값 을 얻 는 원리 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기