2014-02-22 2 views
0

Scheme에서 로그 파일을 만들고 싶습니다. 그러나 새 항목을 추가 할 때마다 파일의 시작 부분에 있어야하므로 X 번호의 로그를 읽을 수 있습니다. 파일을 다시 읽으면 X에서 가장 오래된 항목을 new에서 old로 읽습니다.Scheme에서 파일의 시작 부분에 쓰기

예 :

22/02/14 13시 50분 최신 로그 항목

22/02/14 13시 45분 이전 로그 항목

22/02/14 13시 40분 오래된 로그 항목

누구나 'open-input-file'및 'open-output-file'절차를 사용하여이를 수행하는 방법을 알고 있습니까?

+2

이렇게하지 않으면 엄청 느려질 것입니다. 로그 파일을 추가하고 유닉스 명령'tail'과 같은 도구를 사용하여 파일의 끝을 표시하십시오. – uselpa

+0

가능한 [텍스트 파일 Java의 시작 부분에 쓰기] 가능한 복제본 (http://stackoverflow.com/questions/6127648/writing-in-the-beginning-of-a-text-file-java) – uselpa

답변

1

요청한 기능은 이전 항목을 다음 항목으로 겹쳐 쓸 것이기 때문에 새로운 항목을 작성해야 할 때마다 전체 로그 파일을 작성해야합니다. 일반적으로 프로그램은 로그 파일의 커밋 된 부분을 유지하지 않으므로 더 많은 메모리 사용을 가져오고 로그를 버퍼를 지우려면 순환 될 때 프로그램에서 알아야합니다.

표준적인 방법은 마지막 로그 쓰기가 있던 이전 로그 항목을 남기는 새로운 항목을 추가하는 것입니다.

타협하여 로그 파일을 역순으로 표시하는 프로그램을 찾아 보거나 그 반대의 순서로 찾아 볼 수도 있습니다. 구현하기 쉽기 때문에 이미 존재할 것입니다. 그러한 앱이 존재하지 않는다면 그 앱을 쓰는 것은 사소할 것이다.

관련 문제