📄 actionrunner.java
字号:
package codeexport.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Vector;
import org.dom4j.DocumentException;
import codeexport.conf.DirConf;
import codeexport.conf.EnvConfigure;
import codeexport.conf.FileConf;
import codeexport.conf.ConfFileReader;
import codeexport.conf.UnitConf;
public class ActionRunner {
private InfoOutput infoOutput = InfoOutput.getInstance();
public ActionRunner(){
}
public void doExport(EnvConfigure envConf){
infoOutput.appendInfo(envConf);
try {
File confFile = envConf.getConfFile();
DirConf dirConf = ConfFileReader.read(confFile);
if(dirConf == null){
return;
}
infoOutput.appendInfo("no error,Run now!\n");
File srcDir = envConf.getProjectDir();
File destDir = envConf.getSaveDir();
destDir = new File(destDir,getTimeString());
Vector<DirConf> childDirs = dirConf.getDirConfs();
for(DirConf childDir:childDirs){
doDirConf(srcDir,destDir,childDir);
}
Vector<FileConf> childFiles = dirConf.getFileConfs();
for(FileConf childFile:childFiles){
doFileConf(srcDir,destDir,childFile);
}
infoOutput.appendInfo("finished!\n");
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private String getTimeString(){
Calendar calendar = Calendar.getInstance();
StringBuffer sb = new StringBuffer();
sb.append(calendar.get(Calendar.YEAR));
sb.append(calendar.get(Calendar.MONTH));
sb.append(calendar.get(Calendar.DAY_OF_MONTH));
sb.append(calendar.get(Calendar.HOUR));
sb.append(calendar.get(Calendar.MINUTE));
sb.append(calendar.get(Calendar.SECOND));
return sb.toString();
}
private void doDirConf(File srcDir,File destDir,DirConf dirConf)throws IOException{
String dirName = dirConf.getName();
File curSrcDir = new File(srcDir,dirName);
curSrcDir.mkdir();
File curDestDir = new File(destDir,dirName);
infoOutput.appendInfo("create directory " + curDestDir + "!\n");
Vector<DirConf> childDirs = dirConf.getDirConfs();
for(DirConf childDir:childDirs){
doDirConf(curSrcDir,curDestDir,childDir);
}
Vector<FileConf> childFiles = dirConf.getFileConfs();
for(FileConf childFile:childFiles){
doFileConf(curSrcDir,curDestDir,childFile);
}
}
private void doFileConf(File srcDir, File destDir, FileConf fileConf)
throws IOException {
String name = fileConf.getName();
File srcFile = new File(srcDir,name);
File destFile = new File(destDir,name);
infoOutput.appendInfo("copy file " + srcFile + "!\n");
FileInputStream fin = new FileInputStream(srcFile);
FileOutputStream fout = new FileOutputStream(destFile);
byte[] bytes = new byte[1024];
int length = fin.read(bytes);
while (length != -1) {
fout.write(bytes, 0, length);
length = fin.read(bytes);
}
fout.flush();
fout.close();
fin.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -