2012-03-08 2 views
0

사용자 컴퓨터에 파일을 쓰지만 실제로 문제가있는이 프로그램을 만들려고하는데 c:/ 디렉터리에있는 desktop.bat이라는 파일을 작성하고 싶지만 작동하지 않는 것 같습니다.어떻게 내가 Java의 특정 디렉토리에 이미 만든 배치 파일을 작성합니까?

package javawriter; 

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 

public class JavaWriterObject { 

    public void TryThis(){ 
    try{ 

     File file = new File("C:\\Desktop.bat"); 

     if (file.exists()){ 
       System.out.println("The file exists \ndirectory is found"); 
     }else{ 
      System.out.println("file is not found yet ".concat("file will be created")); 
      file.createNewFile(); 
     } 

     FileWriter out = new FileWriter(file); 
     BufferedWriter writer = new BufferedWriter(out); 
     writer.write(); 

     writer.close(); 

     }catch(IOException e){ 
       e.printStackTrace(); 
     } 
    } 
} 

내가 writer.write();에 대한 문자열을 작성해야하거나 내가 내가 대신 할 파일을 쓸 수있는 뭔가를 할 수 있습니까 :이 코드인가?

답변

3

Java 7의 Files.copy 메소드가 도움이됩니다. copy a file from one location to another.

이전 버전의 Java를 사용하는 경우 원본 파일을 읽고 새 파일에 내용을 복사해야합니다. 그렇지 않으면 타사 라이브러리를 사용해야합니다. Apache Commons IO FileUtils 또는 표준 Java API를 사용하는 것을 포함하여 몇 가지 좋은 해결책에 대한 답변은 this question을 참조하십시오.

파일 복사 방법을 결정한 후에는 다른 문제가 발생할 수 있습니다. 기본적으로 Windows 7은 C:\과 같은 특정 디렉토리에 쓸 수 없도록합니다. 임시 디렉토리 또는 사용자 홈 디렉토리 내의 임의의 위치와 같은 다른 디렉토리에 기록을 시도 할 수 있습니다. C : \에 써야하는 경우 가장 쉬운 해결책은 (Windows에서 파일을 미리 작성하고 프로그램에서 덮어 쓰는 것을 제외하고는) 목적을 저해하는 것입니다. UAC를 사용하지 않도록 설정하고 사용자 계정에 쓰기 권한이 있는지 확인하십시오 그 디렉토리는 보안에 영향을 미친다.

+0

감사합니다. 많은 도움을 주셨습니다. – Walid

관련 문제