2014-05-10 2 views
-2

그래서 나는 모든 java 파일을 디렉토리에서 찾은 다음 하나의 파일에 연결하여 동일한 디렉토리에 놓을 수 있지만 연결을 얻을 수없는 것 같습니다. 권리. 지금까지 내가 한 일은 여러 가지 일을 시도했지만 여전히 올바르게 할 수는 없으므로 사람들이 도와 줄 수 있기를 바랍니다. 감사!자바에서 .java 파일을 연결

import java.io.File; 
import java.io.FileFilter; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 


public class FileConcatenate { 

    public static void main(String[] args) { 
     String dirName = args[0]; 
     String fileName = args[1]; 
     File dirFile = new File("C:\\Users\\Michael\\Desktop\\" + dirName + ""); 
     File file = new File("C:\\Users\\Michael\\Desktop\\" + dirName + "\\" + fileName + ".java"); 
     FileFilter filter = new FileFilter(){ 
      public boolean accept(File pathname){ 
       if(pathname.getName().contains(".java")){ 
        return true; 
       }else{ 
        return false; 
       } 
      } 
     }; 
     try{ 
      if(!dirFile.exists()){ 
       System.out.println("There is no directory with that name"); 
      } 
      File[] javaFile = dirFile.listFiles(filter); 
      if(!file.exists()){ 
       file.createNewFile(); 
      } 
      FileWriter fw = new FileWriter(file, true); 
      for(File f : javaFile){ 
       FileReader fr = new FileReader(f); 
       fw.write(fr.read()); 
       fr.close(); 
      } 
      fw.flush(); 
      fw.close(); 

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

    } 

} 
+0

'나는 연결 권한을 얻을 수없는 것 같습니다. 왜 안되나요? 무슨 일 이니? – John3136

+1

javadoc을 읽으면 다음을 수행 할 수 있습니다. http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#read%28%29 –

+0

기본 사항부터 시작하여 한 파일의 내용을 읽고 그것을 다른 파일에 쓰십시오. –

답변

0

이렇게하면됩니다. 자세한 내용은 인라인 코멘트를 읽으십시오. 귀하의 경우 fw.write(fr.read());


... 
FileWriter fw = new FileWriter(file, true); 
for (File f : javaFile) { 
    FileReader fr = new FileReader(f); 
    // read 1000 chars at a time from source file 
    char[] cbuf = new char[1000]; 
    int count = -1; 
    // iterate till the end of source file 
    // here count represent the no of chars read at a time 
    while ((count = fr.read(cbuf)) != -1) { 
     // write in the targeted file 
     fw.write(cbuf, 0, count); 
    } 
    fr.close(); 
} 
... 

는 기대하고 무엇을하지 않습니다.

소스 파일에서 한 문자를 읽고 대상 파일에 쓰기 만합니다.

자세한 내용은 InputStreamReader#read()에서 은 (는) 단일 문자을 읽습니다.

+0

아, 네,이 작품, 고마워! 나는 지금 시내에 관하여 더 읽을 것이다. – Michael

관련 문제