package com;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import org.apache.commons.io.FileUtils;public class CopyFile { public static void main(String[] args) throws IOException {
List fileList = getAllFilePathByList();
        Date date = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
String subName = String.valueOf(df.format(date));
String prefix = "srclist\\\\"+subName+"\\\\";
int num = copyFile(fileList, prefix);
System.out.println("Copying was Finished-->Total is "+num+" files");
} private static List getAllFilePathByList() throws IOException {
String line = null;
BufferedReader in = null;
List ls = new ArrayList(); in = new BufferedReader(new InputStreamReader(new FileInputStream("c:/srclist.txt"), "MS932"));
line = in.readLine();

while (line != null) {
line = in.readLine();
ls.add(line);
}
return ls;
} private static int copyFile(List fileList, String sabunlistName) {
int j =0;
for (int i = 0; i < fileList.size(); i++) {
String fileName = (String) fileList.get(i); if (fileName == null || "".equals(fileName.trim())){
continue;
}
if(!new File(fileName).exists()){
System.out.println("The "+i+" Line File is not exists-->"+fileName);
continue;
}

String targetFileName = fileName.replaceFirst("C:\\\\", "C:\\\\"+ sabunlistName);
fileName = fileName.replaceAll("\\\\", "/");
targetFileName = targetFileName.replaceAll("\\\\", "/");
try {
FileUtils.copyFile(new File(fileName), new File(targetFileName));
j++;
} catch (Exception e) {
System.out.println("The " + i + " Line file is cant be copyed-->" + fileName);
}
}
return j;
}
}
////////////////////////////////////    分割线   //////////////////////////////////

解决方案 »

  1.   

    package mki.realestate.util;import java.text.SimpleDateFormat;
    import java.text.DecimalFormat;
    import java.util.GregorianCalendar;
    import java.math.BigDecimal;/**
     * 日付編集関連関数群
     */public class DateFormat {    private DateFormat() {
        }    /**
         * 日付編集を行う<br>
         * フォーマットは java.text.SimpleDateFormatクラスに準じる。<br>
         * <P><STRONG>時刻フォーマット構文:</STRONG>
         * <P>時刻フォーマットを指定するには、<EM>時刻パターン</EM>文字列を使用します。このパターンでは、すべての ASCII
         * 文字がパターン文字として使用されます。この定義は次のとおりです。
         * <table border="1">
         * <tr><th>年号</th><th>意味</th><th> 表示</th><th>例</th></tr>
         * <tr><td>y</td><td>年</td> <td>(数値)</td><td>1996</td></tr>
         * <tr><td>M</td><td>月</td><td>(テキストと数値)</td><td>July &amp; 07</td></tr>
         * <tr><td>d</td><td>日</td><td>(数値)</td><td>10</td></tr>
         * <tr><td>g</td><td>元号の頭文字</td><td>(テキスト)</td><td>M, T, S, H</td></tr>
         * <tr><td>gg</td><td>元号の先頭の1文字の漢字</td><td>(テキスト)</td><td>明、大、昭、平</td></tr>
         * <tr><td>ggg</td><td>元号</td><td>(テキスト)</td><td>明治、大正、昭和、平成</td></tr>
         * <tr><td>e</td><td>元号に基づく和暦年</td><td>(テキスト)</td><td>1(1桁でも先頭に0は付かない)</td></tr>
         * <tr><td>ee</td><td>元号に基づく和暦年</td><td>(テキスト)</td><td>05(常に2桁)</td></tr>
         * </table>
         * @param pattern 編集フォーマット指定
         * @param date YYYYMMDDかまたはYYYYMM形式の日付をあらわす文字列
         * @return 編集後文字列
         */
        public static String format(String pattern, String date) {
            if(date == null || pattern == null) throw new IllegalArgumentException("パラメーターNULL");
            int year = 0;
            int month = 0;
            int day = 0;
            int hour = 0;
            int minute = 0;
            int second = 0;
            if(date.length() == 6) {
                year = Integer.parseInt(date.substring(0, 4));
                month = Integer.parseInt(date.substring(4, 6)) - 1;
                day = 1;
            } else if(date.length() == 8) {
                year = Integer.parseInt(date.substring(0, 4));
                month = Integer.parseInt(date.substring(4, 6)) - 1;
                day = Integer.parseInt(date.substring(6, 8));
            } else if(date.length() == 14) {
                year = Integer.parseInt(date.substring(0, 4));
                month = Integer.parseInt(date.substring(4, 6)) - 1;
                day = Integer.parseInt(date.substring(6, 8));
                hour = Integer.parseInt(date.substring(8, 10));
                minute = Integer.parseInt(date.substring(10, 12));
                second = Integer.parseInt(date.substring(12, 14));
            } else {
                throw new IllegalArgumentException("日付指定エラー[" + date + "]");
            }
            GregorianCalendar gc = new GregorianCalendar(year, month, day, hour, minute, second);
            DateEx de = new DateEx(year, month, day);
            pattern = replaceWareki(pattern, de);        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            return sdf.format(gc.getTime());    }    private static String replaceWareki(String pattern, DateEx de) {
                StringBuffer sb = null;
                int i = 0;
                while(true) {
                    int p = pattern.indexOf("ggg");
                    if(p == -1) {
                        break;
                    } else {
                        sb = new StringBuffer(pattern);
                        String tmp = sb.toString();
                        sb = sb.replace(p, (p + 3), de.getGengoKanji());
                        pattern = sb.toString();
                        i=p;
                    }
                    i++;
                    if(i > sb.length()) {
                        break;
                    }
                }            i = 0;
                while(true) {
                    int p = pattern.indexOf("gg");
                    if(p == -1) {
                        break;
                    } else {
                        sb = new StringBuffer(pattern);
                        String tmp = sb.toString();
                        sb = sb.replace(p, (p + 2), de.getGengoKanjiHalf());
                        pattern = sb.toString();
                        i=p;
                    }
                    i++;
                    if(i > sb.length()) {
                        break;
                    }
                }            i = 0;
                while(true) {
                    int p = pattern.indexOf("g");
                    if(p == -1) {
                        break;
                    } else {
                        sb = new StringBuffer(pattern);
                        String tmp = sb.toString();
                        sb = sb.replace(p, (p + 1), ("'" + de.getGengoCode() + "'"));
                        pattern = sb.toString();
                        i=p;
                    }
                    i++;
                    if(i > sb.length()) {
                        break;
                    }
                }            long warekiYear = (long)de.getYearWareki();
                DecimalFormat df = new DecimalFormat("00");
                String strWarekiYear = df.format(warekiYear);
                i = 0;
                while(true) {
                    int p = pattern.indexOf("ee");
                    if(p == -1) {
                        break;
                    } else {
                        sb = new StringBuffer(pattern);
                        String tmp = sb.toString();
                        sb = sb.replace(p, (p + 2), strWarekiYear);
                        pattern = sb.toString();
                        i=p;
                    }
                    i++;
                    if(i > sb.length()) {
                        break;
                    }
                }            df = new DecimalFormat("#0");
                strWarekiYear = df.format(warekiYear);
                i = 0;
                while(true) {
                    int p = pattern.indexOf("e");
                    if(p == -1) {
                        break;
                    } else {
                        sb = new StringBuffer(pattern);
                        String tmp = sb.toString();
                        sb = sb.replace(p, (p + 1), strWarekiYear);
                        pattern = sb.toString();
                        i=p;
                    }
                    i++;
                    if(i > sb.length()) {
                        break;
                    }
                }            return pattern;
        }
      

  2.   

        /**
         * 期間編集を行う<br>
         * @param pattern 編集フォーマット指定
         * @param date YYYYMM形式の年月をあらわす文字列
         * @param startTsukisu 請求期間開始月数
         * @param startKbn 請求期間開始区分(1~31,EE:月末)
         * @param endTsukisu 請求期間終了月数
         * @param endKbn 請求期間終了区分(1~31,EE:月末)
         * @return 編集後文字列
         */
        public static String formatKikan(String pattern,
                                         String date,
                                         BigDecimal startTsukisu,
                                         String startKbn,
                                         BigDecimal endTsukisu,
                                         String endKbn) {
            if(date == null || pattern == null) throw new IllegalArgumentException("パラメーターNULL");
            if (startTsukisu == null || startKbn == null || endTsukisu == null || endKbn == null) {
                //請求期間が来ない場合には値を入れずに返す
                return pattern;
            }
            String displayString = pattern;        if(date.length() == 6) {
                date = date + "01";
            } else {
                throw new IllegalArgumentException("日付指定エラー[" + date + "]");
            }
            //開始用年月日
            String startDate = DateFunction.getRelativeMonth(date,startTsukisu.intValue());
            if ((startKbn != null) && (startKbn.equals("EE"))) {
                startDate = DateFunction.getEndOfMonth(startDate.substring(0,4),startDate.substring(4,6));
            }
            else {
                if ((startKbn != null) && (startKbn.length() == 1)) {
                    startKbn = "0" + startKbn;
                }
                startDate = startDate.substring(0,6) + startKbn;
            }
            //終了用年月日
            String endDate = DateFunction.getRelativeMonth(date,endTsukisu.intValue());
            if ((endKbn != null) && (endKbn.equals("EE"))) {
                endDate = DateFunction.getEndOfMonth(endDate.substring(0,4),endDate.substring(4,6));
            }
            else {
                if ((endKbn != null) && (endKbn.length() == 1)) {
                    endKbn = "0" + endKbn;
                }
                endDate = endDate.substring(0,6) + endKbn;
            }        //文字列置換を行う
            String beforeString = null;
            String afterString = null;
            if (displayString.indexOf("YY") != -1) {
                //開始年の置換
                beforeString = displayString.substring(0,displayString.indexOf("YY"));
                afterString = displayString.substring(displayString.indexOf("YY") + 2);
                displayString = beforeString
                              + startDate.substring(2,4)
                              + afterString;
            }
            if (displayString.indexOf("MM") != -1) {
                //開始月の置換
                beforeString = displayString.substring(0,displayString.indexOf("MM"));
                afterString = displayString.substring(displayString.indexOf("MM") + 2);
                displayString = beforeString
                              + startDate.substring(4,6)
                              + afterString;
            }
            if (displayString.indexOf("DD") != -1) {
                //開始日の置換
                beforeString = displayString.substring(0,displayString.indexOf("DD"));
                afterString = displayString.substring(displayString.indexOf("DD") + 2);
                displayString = beforeString
                              + startDate.substring(6,8)
                              + afterString;
            }
            if (displayString.indexOf("YY") != -1) {
                //終了年の置換
                beforeString = displayString.substring(0,displayString.indexOf("YY"));
                afterString = displayString.substring(displayString.indexOf("YY") + 2);
                displayString = beforeString
                              + endDate.substring(2,4)
                              + afterString;
            }
            if (displayString.indexOf("MM") != -1) {
                //終了月の置換
                beforeString = displayString.substring(0,displayString.indexOf("MM"));
                afterString = displayString.substring(displayString.indexOf("MM") + 2);
                displayString = beforeString
                              + endDate.substring(4,6)
                              + afterString;
            }
            if (displayString.indexOf("DD") != -1) {
                //終了日の置換
                beforeString = displayString.substring(0,displayString.indexOf("DD"));
                afterString = displayString.substring(displayString.indexOf("DD") + 2);
                displayString = beforeString
                              + endDate.substring(6,8)
                              + afterString;
            }        return displayString;
        }}
    ////////////////////////////////// 分割线 //////////////////////////////////////////