Java 파일 복사
자바 파일 복사.
회사서 썻던 코드를 고대로 복사 붙여넣기햇네 ㅋㅋ;; 이런
package com.winglish.serverfile.service;
import com.module.jdbc.CommonDBConn; import com.module.trans.RequestUtil; import com.winglish.serverfile.dao.DataCopyDAO; import com.winglish.serverfile.dao.DataCopyInter;
import java.io.*;
import java.util.*;
import static java.lang.System.out;
public class DataCopyService {
private DataCopyInter dao = null; private CommonDBConn db = null;
public void Copy(RequestUtil request) { HashMap getHm = new HashMap();
String inFolder = request.getParameter(“filePath”); String outFolder = ”d:\output\”; String outName = ””; //이동후의 폴더 GregorianCalendar cal = new GregorianCalendar();
//이동전의 폴더에 있는 파일들을 읽는다. List
int size = dirList.size(); //폴더의 사이즈만큼 돌면서 파일을 이동시킨다.
int startNum = Integer.parseInt(request.getParameter(“start”));
int t = 0; // dao = new DataCopyDAO(db.getResource()); List ogList = null;
try { // ogList = dao.GetList(); /* getHm = (HashMap)al.get(i); sName = (String)getHm.get(“name”); / // 미구현. / for(int i =0 ; i <ogList.size();i++){
getHm = (HashMap)ogList.get(i); System.out.println(getHm.get(“og_num”));
}
*/ File f = null; for (int i = 0; i < dirList.size()/2; i++) {
String outFolderName=”d:/output/orange_gme_“+startNum; f = new File(outFolderName); if(!f.isDirectory()){ f.mkdir(); } //makeDir(outFolderName); //디렉토리 생성. startNum++; }
startNum = Integer.parseInt(request.getParameter(“start”)); for (int i = 0; i < dirList.size()/2; i++) {
//i번째 저장되어 있는 파일을 불러온다. for (int y = 0; y < 2; y++) {
String fileName = dirList.get(t).getName(); String outFolderName=””; if (fileName == null) { break; } else {
String name[] = fileName.split(“\.”);
String outName2 []= name[0].split(“_”);
outName = outName2[0] +”“+outName2[1]+””+ startNum + ”.” + name[1]; outFolderName=outName2[0] +”“+outName2[1]+””+ startNum; out.println(“ 파일 이름은 : ” + fileName); fileCopy(inFolder + ”\“ + fileName, outFolder +outFolderName+ ”\“ + outName); t++; }
}
startNum++;
}
/* for (int i = 0; i < 84; i++) {
//i번째 저장되어 있는 파일을 불러온다.
String fileName=”복사”+i;
outName = fileName;
out.println(“ 파일 이름은 : ” + fileName); fileCopy(inFolder + ”\“ + fileName, outFolder + ”\“ + outName); t++; }
*/
} catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. }
}
//파일을 존재여부를 확인하는 메소드 public static Boolean fileIsLive(String isLivefile) { File f1 = new File(isLivefile);
if (f1.exists()) { return true; } else { return false; } }
//파일을 생성하는 메소드 public static void fileMake(String makeFileName) { File f1 = new File(makeFileName); try { f1.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
//파일을 삭제하는 메소드 public static void fileDelete(String deleteFileName) { File I = new File(deleteFileName); I.delete(); }
public static void makeDir(String fName){
File f = new File(fName);
//String newFolderName [] =fName.split(“\.”); //String newFolder= newFolderName[0]+newFolderName[1]; System.out.println(“폴더 이름은 이거다~~~~~~~~~~ ”+fName);
f.mkdir(); if(!f.mkdir()) System.err.println(“디렉토리 생성 실패!!”);
}
//파일을 복사하는 메소드 public static void fileCopy(String inFileName, String outFileName) { try { FileInputStream fis = new FileInputStream(inFileName); FileOutputStream fos = new FileOutputStream(outFileName); System.out.println(inFileName + ”== 경로로 복사 ====»“ + outFileName);
byte[] buffer = new byte[1024 * 2];
int dataSize = 0; while ((dataSize = fis.read(buffer)) != -1) { fos.write(buffer, 0, dataSize); } fis.close(); fos.close();
} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
//파일을 이동하는 메소드 public static void fileMove(String inFileName, String outFileName) { try { FileInputStream fis = new FileInputStream(inFileName); FileOutputStream fos = new FileOutputStream(outFileName);
int data = 0; while ((data = fis.read()) != -1) { fos.write(data); } fis.close(); fos.close();
//복사한뒤 원본파일을 삭제함 fileDelete(inFileName);
} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
//디렉토리의 파일 리스트를 읽는 메소드 public static List
// 파일 목록을 요청한 디렉토리를 가지고 파일 객체를 생성함 File dir = new File(dirPath);
// 디렉토리가 존재한다면 if (dir.exists()) { System.out.println(“경로 ok”); // 파일 목록을 구함 File[] files = dir.listFiles();
// 파일 배열을 파일 리스트로 변화함 dirFileList = Arrays.asList(files); } else { System.out.println(“파일 없음..”);
} return dirFileList; } }
서블릿으로 구현하려다가 그냥 실행된 후 파일 복사 되도록 변경.
위 소스는 일단 파일 명으로 폴더 생성 후 복사된 파일의 이름을 변경 저장. (파일은 2개씩 이름이 복사되어 저장됨.)