2013-08-09 1 views
1

비정상적인 sitution에서 생겼습니다. abc.dat라는 .dat 파일을 만들어야하지만 문제는 내가 만든 다음 c : 드라이브에서 확인합니다. 는이를 구성하려면 아래 dat 파일이 버퍼링 된 작성자에 의해 생성되지 않습니다.

if (totaltsers.size()>0){ 
    try {// Generate a file 
     //File file = new File(

     String finalfilename= abamfilepath+ getFileName(); 
     System.out.println(finalfilename); 

     File file = new File(abamfilepath+ getFileName()); 
     FileOutputStream fileOutputStream = null; 
     OutputStreamWriter outputStreamWriter = null; 
     BufferedWriter bw = null; 

     Charset charset = Charset.forName("UTF-8"); 
     CharsetEncoder charsetEncoder = charset.newEncoder(); 
     charsetEncoder.onMalformedInput(CodingErrorAction.IGNORE); 
     fileOutputStream = new FileOutputStream(file.getPath()); 
     outputStreamWriter = new OutputStreamWriter(fileOutputStream, charsetEncoder); 
     bw = new BufferedWriter(outputStreamWriter); 

     if (file.exists()){ 
      file.delete(); 
     } 

     for (tser tser : totaltsers) { 
      for (toabj bk : books) { 
       //if (tser.toabjdfr() == null) 
       if((tser.toabjdfr() == null) &&(tser.ghjk() == null)){ 
        bw.write("aaa"); 
       } 
       else if (tser.toabjdfr() == null && tser.ghjk() != null){ 
        bw.write("bb");  
       } 
       else if (tser.toabjdfr() != null && tser.ghjk() == null){ 
        bw.write("ccc");  
       } 
      else 
        bw.write("ddd"); 
       bw.newLine(); 
      } 
     }  
     bw.flush(); 
     bw.close(); 
     fileOutputStream.close(); 
     outputStreamWriter.close(); 
    } 
    catch (Exception e){ 
     String message = "Ate exception : " + e.getMessage(); 
     System.err.println(message); 
     logger.error(message); 
    } 
} 

은 ... .DAT 파일 확장자가 생성받을 수 있도록 내 코드를 수정할 수있는 방법을 알려 주시기 바랍니다 가 생성됩니다 _auto_file 확장 형식으로 파일을 대신 cretaed되지 않고있는 .dat 확장자를 가진 파일 파일 이름

public String getFileName() { 
    return buildFileName(); 
} 

private String buildFileName() { 
    String filename = "abc"; 
    filename = filename+".dat"; 
    return filename; 

나는 제안 된 변경 사항을 수행했습니다. t는 여전히 작동하지 않습니다 ..하지만 여전히

String finalfilename= abamfilepath+ getFileName(); 
     System.out.println(finalfilename); 
      File file = new File(abamfilepath + getFileName()); 
      FileOutputStream fileOutputStream = new FileOutputStream(file.getPath()); 
       OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream); 
       BufferedWriter bw = new BufferedWriter(outputStreamWriter); 
       if (file.exists()) { 
       file.delete(); 
      } 


      file.createNewFile(); 




    } 
+0

'abamfilepath'의 값은 무엇입니까? –

+0

확장자가'dat_auto_select 또는 auto_select'로 생성 된 파일 ?? – saurav

+0

abamfilepath가 속성 파일에서 선택되었습니다. 속성 파일의 전체 위치는 .. C : \\ Applications \\ –

답변

3

첫째,이처럼 FileInputStream에를 만들기 위해 파일 자체를 사용하여 알려 주시기 바랍니다 작동하지 않습니다 :

fileOutputStream = new FileOutputStream(file); 

을 한 후,이 선 후 :

if (file.exists()){ 
     file.delete(); 
    } 

코드를 포함

file.createNewFile(); 

그게 당신의 문제를 해결해야합니다.

1

File f = new File (file)과 같은 구문입니다. 디스크에 파일을 만들지 않습니다. 클래스 java.io.File은 디스크의 실제 파일이 아닌 파일 경로 만 나타냅니다.

새 파일을 만들려면 FileOutputStream을 열고 파일에 데이터를 쓸 수 있습니다.

+0

+1 정보를 제공합니다 :-), 나는 이것을 상향 조정하기 위해 7 시간을 기다려야하지만 내 한계는 사라졌습니다 :( –

관련 문제