2012-08-24 3 views
0

DOS 명령 "copy * .txt NEW.txt"를 사용하여 Java 프로그램 내에서 새로운 txt 파일을 형성하기 위해 여러 개의 txt 파일을 단일 디렉토리에 연결하고 싶습니다.Java에서 DOS 'copy'명령

DOS를 내 디렉터리로 이동하고 명령을 어떻게 실행할 수 있습니까? 나는 실종됐다.

미리 감사드립니다.

+6

왜 귀찮은가요? 왜 Java로 파일을 복사하지 않습니까? –

+3

당신은 도스를 사용하지 않았습니까? 실제로 DOS 용 JVM이 없다고 생각합니다. –

+1

아이디어의 나쁜 점은'Runtime.exec'을 사용하는 것인데, 여전히 합법적 인 질문입니다. 그것은 downvoted되지 않는 것이 가치가있어. –

답변

1

당신은 사용할 수 있습니다

Runtime.getRuntime().exec("cmd /c copy *.txt NEW.txt", 
    null, new File("<yourDirectory>")); 

심지어 내가 그렇게 제안하지 거라 생각 했어요. 첫째로, 그것은 옳다는 것은 까다 롭습니다. 그런 다음 플랫폼에 따라 다릅니다 (Windows에서만 작동). 대신, 사용하겠습니다. java.io.FileInputStream/ java.io.FileOutputStream

+1

나는 cmd.exe를 실행하고 복사 문자열을 매개 변수로 전달해야한다고 생각한다. 제안한대로 Java로 작업하는 것이 훨씬 쉽습니다. –

0

Process을 만들고 실행하기 전에 작업 디렉토리를 설정하십시오.

1

DOS 명령을 호출하는 것은 좋은 생각이 아닙니다. 응용 프로그램이 환경에 크게 의존하게되므로 IO 오류를 올바르게 감지하고 복구하는 것이 훨씬 더 어려워집니다. IOUtilsApache Commons IO에서 사용 하시길 바랍니다. 반복적으로 copy 메서드 중 하나를 호출하여 필요한 것을 쉽게 얻을 수 있습니다.

단일 스트림으로 연결된 여러 파일을 읽는 것만으로도 SequenceInputStream을 사용할 수 있습니다.