Zwei Methoden:
1. Kopieren Sie alle Dateien und Ordner unter einem Verzeichnis
2. Zusammenführen alle Textdateien unter einem Dateiverzeichnis in dieselbe Datei
Die Codekopie lautet wie folgt:
Paket com.firewolf.test;
Import Java.io.file;
import Java.io.FileInputStream;
importieren java.io.fileoutputStream;
importieren java.io.ioException;
öffentliche Klasse fileReaderutil {
public static void main (String [] args) {
versuchen {
// MergeFile (neue Datei ("c:/dokumente und Einstellungen/Liuxing0/Desktop/neues Ordner/Skript"), neue Datei ("d: /all.sql"));
CopyFiles (neue Datei ("G:/Study Materials/Notes"), neue Datei ("g:/test");
} catch (ioException e) {
E. printstacktrace ();
}
}
/**
* Kopieren Sie alle Dateien in einem Dateiverzeichnis.
* @Param SourcePath Original -Dateiverzeichnis
* @Param Despath Dessing Dateiverzeichnis
*/
private statische void -Copyfiles (Dateiquellfile, Datei Desfile) löst IOException {aus
if (SourceFile.isfile ()) {
Datei Datei = neue Datei (DesFile.getPath ()+"/"+SourceFile.getName ());
FileInputStream fis = new FileInputStream (SourceFile);
FileOutputStream fos = new FileOutputStream (Datei);
int len = 0;
byte [] buf = neues byte [1024];
while ((len = fis.read (buf))! = -1)
fos.write (buf, 0, len);
}anders{
Datei Dir = new Datei (Desfile.getPath ()+"/"+SourceFile.getName ());
if (! Dir.Exists ())
dir.mkdir ();
String [] names = sourceFile.list ();
für (int i = 0; i <names.length; i ++) {
CopyFiles (neue Datei (SourceFile.getPath ()+"/"+Namen [i]), Dir);
}
}
}
/**
* Eine Methode, um alle Dateien unter einem Dateiverzeichnis in einer Datei eindeutig zu kombinieren (hauptsächlich zum Zusammenführen vieler Textdateien)
* @Param SourceFile
* @param decfile
* @zurückkehren
* @throws ioException
*/
private statische Datei mergeFile (Datei SourceFile, Datei decFile) löst IOException {aus
String [] filelist = sourceFile.list ();
für (Zeichenfolge Zeichenfolge: Filelist) {
Datei Datei = neue Datei (SourceFile.getPath ()+"/"+String);
if (! file.isdirectory ()) {
FileInputStream fis = new FileInputStream (Datei);
FileOutputStream fos = new FileOutputStream (decFile, true);
byte [] buffer = neues byte [1024];
int len = 0;
while ((len = fis.read (puffer))! = -1)
fos.write (puffer, 0, len);
}
anders {
decFile = mergeFile (Datei, decFile);
}
}
Rückkehr DecFile;
}
}