2010-06-10 3 views
4

다른 프로그램에서 만든 파일을 처리하는 Java 응용 프로그램을 작성했습니다. 나는 내 프로그램이 실시간으로 작동하기를 원한다. 그러기 위해서 나는 다른 프로그램이 그것을 쓰는 동안 파일을 읽을 필요가있다. 간단한 해결책은 무한 루프에서 EOF에 도달 했는데도 파일에서 계속 읽는 것이지만 매우 비효율적입니다.java의 명명 된 파이프

더 나은 솔루션은 명명 된 파이프를 사용하고 해당 파이프에 쓸 프로그램을 구성하는 것입니다. 프로그램의 출력 파일을 선택할 수 있습니다. 나는 창문에 파이프에 대해 아무것도 몰라, 나는 파일 시스템에서 그것들을 만드는 법을 모른다. 가능한 경우, 내 애플 (자바)에서 그들을 만들고 싶습니다,하지만 다른 방법으로 잘 될 것입니다.

나는 Windows XP SP3에서 일하고있다.

Windows에서도 가능합니까? 가장 좋은 방법은 무엇입니까?

덕분에, Yannay

답변

1

창들이 완전히 * nix에서 스크립트에서와 동일하지 않은 파이프가있는 동안은 (this wikipedia page 참조) 및 Java 지원이 없습니다. 일반적인 제안은 대신 프로세스 간 통신을 위해 소켓을 사용하는 것입니다. 비록 내가 어떤 확실한 증거도 제공 할 수는 없지만, 당신이 localhost를 돌면서 파이프를 사용했을 때 상당한 오버 헤드를 발생시키지 않아야하고, 나중에 다른 컴퓨터에서 프로세스를 실행하도록 선택하면 코드가 더욱 융통성있게 될 것입니다 .

+0

두 프로그램을 모두 작성하면 좋을 것입니다. 그러나, 나는 파일을 쓰는 프로그램의 소스 코드에 접근 할 수 없다. 필자는 파일을 기록 할 위치 (파일 시스템의 유효한 경로 여야 함) 만 지정할 수 있습니다. 아무튼 감사합니다. – yannay

+0

@M. Jessup 성능에 대해 이야기하는 경우, Pipes는 소켓 오버 - 로컬 호스트 플랫 – Pacerier

관련 문제