두 가지 방법 :
1. 디렉토리 아래의 모든 파일과 폴더를 복사하십시오
2. 파일 디렉토리 아래의 모든 텍스트 파일을 동일한 파일로 병합합니다.
코드 사본은 다음과 같습니다.
패키지 com.firewolf.test;
import java.io.file;
import java.io.fileInputStream;
import java.io.fileoutputStream;
import java.io.ioexception;
공개 클래스 filereaderutil {
public static void main (String [] args) {
노력하다 {
// mergefile (새 파일 ( "c :/documents and settings/liuxing0/goodtop/new 폴더/스크립트"), 새 파일 ( "d :/all.sql"));
CopyFiles (새 파일 ( "g :/study 자료/노트"), 새 파일 ( "g :/test"));
} catch (ioexception e) {
e.printstacktrace ();
}
}
/**
* 파일 디렉토리에 모든 파일을 복사하십시오.
* @param sourcepath 원본 파일 디렉토리
* @param despath desition 파일 디렉토리
*/
개인 정적 void CopyFiles (파일 소스 파일, 파일 desfile)는 ioexception {
if (sourcefile.isfile ()) {
파일 = 새 파일 (desfile.getPath ()+"/"+sourceFile.getName ());
fileInputStream fis = 새로운 fileInputStream (sourceFile);
fileoutputStream fos = 새 FileOutputStream (file);
int len = 0;
바이트 [] buf = 새로운 바이트 [1024];
while ((len = fis.read (buf))! = -1)
fos.write (Buf, 0, Len);
}또 다른{
file dir = 새 파일 (desfile.getPath ()+"/"+sourceFile.getName ());
if (! dir.exists ())
dir.mkdir ();
문자열 [] names = sourcefile.list ();
for (int i = 0; i <names.length; i ++) {
CopyFiles (새 파일 (sourceFile.getPath ()+"/"+names [i]), dir);
}
}
}
/**
* 파일 디렉토리 아래의 모든 파일을 하나의 파일로 고유하게 결합하는 메소드 (주로 많은 텍스트 파일을 함께 병합하는 데 사용됨)
* @param sourcefile
* @param decfile
* @반품
* @throws ioexception
*/
private static file mergefile (파일 소스 파일, 파일 decfile)은 ioexception {
문자열 [] filEList = sourceFile.list ();
for (문자열 문자열 : filleList) {
파일 = 새 파일 (sourceFile.getPath ()+"/"+string);
if (! file.isdirectory ()) {
fileInputStream fis = 새로운 fileInputStream (file);
fileoutputStream fos = 새 FileOutputStream (decfile, true);
바이트 [] 버퍼 = 새로운 바이트 [1024];
int len = 0;
while ((len = fis.read (buffer))! = -1)
fos.write (Buffer, 0, Len);
}
또 다른 {
decfile = mergefile (파일, decfile);
}
}
반환 decfile;
}
}