I/O 파일분할저장 질문입니다.
미쿡
다름이 아니라 이번에 log파일을 가져와
정규화를 거친 후 분할저장하는 일을 맡았는데요.
로그30메가..꽤 많은 양인데..
이것을 input하여 5000개의 데이터를 꺼내와 파일로 만드는
작업까지는 완료하였습니다.
문제는 그 많은 로그중 정규화를 통해 5000개는 가져왔는데
저장을 어떻게 해야할지;;
현재 5000개 저장한 화일은 270kb입니다.
결국 100개 이상의 화일들이 만들어져야 된다는 말이죠.
좋은 아이디어 있으신분 답변좀 부탁드립니다.
저장파일명은 시퀀스를 이용해서 저장하고..
현재 5000개를 뽑아내는 구문은 for문을 이용하고 있습니다.
-----------------------------------------------------
정리하면..현재 작업한 구조상 5000개를 뽑아내서 저장한 후 다시 루프문에 들어가도
맨처음과 같은 5000개의 로그가 계속 뽑아져 나오겠죠.
만약 처음에 5000개를 뽑아냈을때 원본에서 사라지면 차라리 낳을지도..;;
좋은 방법좀 부탁드립니다.
-
무슬
간단히 1개 원본파일을 2개로 쪼개는 거라면,
while문을 사용해서 원본파일을 readline으로 읽어서 새로운 파일에 쓰면 될듯 한데요.
라인 count체크하고 5000라인 넘으면 새로운 파일 만들고 쓰면 될거 같은데요.
우선 readline으로 원본을 그대로 카피하는 프로그램 만들어 테스트 하시고
if 제약조건으로 분할파일과 count체크하는 것만 넣으면 될듯 한데요.
파일이 크다 적다는 문제가 안될듯한데요.
2줄짜리 파일을 1줄씩 나눠서 저장하 -
새솔
간단히 질문하자면 로그파일의 크기가 엄청 큰데 readline메소드를 이용하여 어떻게 5000줄씩 짤라서 저장하나...--가 요지 입니다. for문을 돌려도 한개만으론 안될듯싶고..
예로 10000줄의 로그를 5000개씩 추출하여 파일을 만드는데 5000개씩 자르는 요령과 짜른후 저장하는 방법이지요..ㅠ_ㅠ; -
남은
질문이 잘 이해가 안됩니다만...
정규화의 방법에 따라서 달라 지지 않겠습니까?
저라면 이러한 방법으로 할것 같습니다.
1. 로그 파일을 순차적으로 읽는 LogReader를 작성합니다. 이는 스트림으로 Writer에 제공될 것입니다.
2. 로그 파일을 쓰는는 Writer 인터페이스를 작성합니다. 그리고 이를 구현하는 클래스를 작성합니다. 각 클래스는 현재 전달된 스트림이 자신이 처리해야 할 것인지 판단하고, 처리해야 하는 스트림이라면 처리하고, 처리할