저는 작은 사무실에서 일하고 있습니다. 저는 응용 프로그램을 가지고 있으며, 14000 라인의 큰 텍스트 파일을 생성합니다.최상의 성능으로 어떻게 필터링 할 수 있습니까? (JAVA)
각 생성 후에 필자는 그것을 필터링해야하며 정말 지루합니다.
가능한 한 빨리 처리 할 수있을 때까지 Java로 응용 프로그램을 작성하고 싶습니다.
도와주세요. 스캐너로 응용 프로그램을 작성했습니다 (물론 도움이 필요합니다 :)). 그러나 좋지는 않습니다. becase 매우 느립니다. 예를 들어
는 내 파일입니다 :
SET CELL:NAME=CELL:0,CELLID=3;
SET LSCID:NAME=LSC:0,NETITYPE=MDCS,T32=5,EACT=FILTER-NOFILTER-MINR-FILTER-NOFILTER,ENSUP=GV2&NCR,MINCELL=6,MSV=PFR,OVLHR=9500,OTHR=80,BVLH=TRUE,CELLID=3,BTLH=TRUE,MSLH=TRUE,EIHO=DISABLED,ENCHO=ENABLED,NARD=NAP_STLP,AMH=ENABLED(3)-ENABLED(6)-ENABLED(9)
나는이 출력 (필터 : 원하는
CELLID : 3
ENSUP : GV2&NCR
ENCHO : ENABLED
MSLH : TRUE
------------------------
Count of CELLID : 2
하는 솔루션이 최고의 다른 것보다 가장 빠른?
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new File("i:\\1\\2.txt"));
scanner.useDelimiter(";|,");
Pattern words = Pattern.compile("(CELLID=|ENSUP=|ENCHO=)");
while (scanner.hasNextLine()) {
String key = scanner.findInLine(words);
while (key != null) {
String value = scanner.next();
if (key.equals("CELLID="))
System.out.print("CELLID:" + value+"\n");
//continue with else ifs for other keys
else if (key.equals("ENSUP="))
System.out.print("ENSUP:" + value+"\n");
else if (key.equals("ENCHO="))
System.out.print("ENCHO:" + value+"\n");
key = scanner.findInLine(words);
}
scanner.nextLine();
}
}
매우 참으로 감사드립니다 ...
명 그것이 – mportiz08
여기에 "비즈니스 로직"이란 무엇입니까 느린 실행 왜 볼 수 있도록 당신이, 당신이 현재 사용하고있는 코드를 게시해야합니까? 당신이하려고하는 것은 무엇입니까? 그것은 입력과 출력으로부터 명확하지 않다. –
Java가 특별히 필요한 이유는 무엇입니까? 폴 톰 블린 (Paul Tomblin)이 이미 지적했듯이, 그 의미는 괜찮지 만 당신의 목적에 부합하지 않을 수도 있습니다. –