파일을 순차적으로 읽는 FileProcessor를 만들고 싶습니다. 이 클래스는 여러 스레드에서 액세스하며 각 스레드는 행을 읽고 해당 행을 처리 한 후 데이터 구조에 저장합니다. 지금까지 나는 다음과 같이 디자인 문제를 해결하는 단계를 상상했습니다.자바에서 텍스트 파일의 행을 다른 스레드로 한 번만 전달하는 방법
클래스 FileProcessor with tasks : 파일을 여는 메소드 getline. BufferedReader는 각 행을 읽고 그 행을 반환합니다.
두 번째 클래스는 실행 파일을 구현하는 FileThread입니다. 실행 메소드에서 FileProcessor 객체의 getline()을 호출하십시오. 이 스레드는 또한 라인을 처리하고 데이터 구조에 저장합니다.
3 등급은 FileThreads의 여러 스레드를 크레이트합니다.
나는이 디자인이 내가 상상할 수있는 결함이 있음을 알고있다.
- 각 스레드가 EOF에 도달하여 멈추는 지 알 수있는 방법.
- FileProcessor에서 파일을 정상적으로 읽는 동안 EOF를 감지하거나 한 줄씩 읽어야하고 threa가 EOF 조건을 처리해야합니다.
도와주세요.
무엇을 했습니까? –
내가 계획하고있는 디자인이 좋은지 또는 뭔가 잘못되어 있는지 알고 싶습니다. –
영어가 아닌 프로그래밍 언어 측면에서 구체적으로 설명하십시오. 당신이하려는 것을 상상하기가 어렵습니다. – Lion