2013-03-21 6 views
1

jar 파일 안에 exe 파일이 있고 이것을 임시 위치에 복사하려고합니다. Desktop.browse()을 사용하여 실행할 수 있습니다. class.getResourceAsStream을 사용하여 입력 스트림 생성자를 작성한 다음 printwriter을 사용하여이 파일을 모두 파일에 작성했습니다. 발생한 문제는 exe가 유효하지 않다고 말합니다. 나는 이것이 어떤 바이너리 데이터가 손실 되었기 때문이라고 생각한다. 누구든지 도움을 줄 수 있다면 의견을 게시하십시오.jar 파일 외부에 바이너리 파일 복사하기

Scanner sc = new Scanner(ClassBuilder.class.getResourceAsStream("jd-gui.exe")); 
    File copy = new File("C://users//Owner//Desktop//java//jd-gui.exe"); 
    copy.createNewFile(); 
    PrintWriter writer = new PrintWriter(copy); 

    while(sc.hasNextLine()) 
     writer.println(sc.nextLine()); 

    writer.flush(); 
    writer.close(); 
    sc.close(); 

    Desktop.getDesktop().browse(copy.toURI()); 
+0

코드를 표시하십시오. make는 짧고 감미롭고 중요한 부분 만 http://sscce.org/ – chr

+1

텍스트를 읽는 데 스캐너가 사용됩니다. PrintWriter는 텍스트를 쓰는 데 사용됩니다. exe 파일은 바이너리 파일입니다. 스트림을 사용하십시오. –

+0

.exe 파일을 새 위치로 복사해야합니까? – Azad

답변

4

이미 언급 한대로 이진 데이터 용 스트림을 사용하십시오. Commons io는 스트림을 쉽게 복사합니다. 다음과 같이 입력하십시오 :

InputStream in = getClass().getResourceAsStream("jd-gui.exe"); 
OutputStream out = new FileOutputStream("jd-gui.exe"); 
IOUtils.copy(in, out); 
+0

그것은 지금 내가 평민 API를 사용하지 않는 작품 –

관련 문제