ツールとして作成しているため、効率とか考えてません。
public static void main(String[] args) {
}
を実装して使ってみてください。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; public class ConcatFileClass { /** * 指定されたディレクトリ(dir)配下のファイルを1つのファイル(f)に結合します。 * @param dir File * @return boolean true : succeeded, false : failed */ public boolean execute(File dir, File f) { return this.execute(dir, f, "SJIS", "SJIS"); } public boolean execute(File dir, File f, String fic, String foc) { BufferedReader br = null; BufferedWriter bw = null; File[] files = null; String line = null; int count = 0; if (dir == null || f == null) { System.out.println("パラメータに誤りがあります。"); return false; } else if (dir.isFile()) { System.out.print(dir.toString()); System.out.println("は、ディレクトリではありません。"); return false; } else if (f.isDirectory()) { System.out.print(f.toString()); System.out.println("は、ファイルではありません。"); return false; // } else if (f.canWrite()) { // System.out.print(f.toString()); // System.out.println("は、書き込み可能ファイルではありません。"); // return false; } else if (!dir.exists()) { System.out.println("ディレクトリが存在しません。"); return false; } try { files = dir.listFiles(); if (files == null || files.length == 1) { System.out.println("結合するファイルが存在しません。"); return false; } bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f), foc)); count = files.length; for (int i = 0; i < count; i++) { br = new BufferedReader(new InputStreamReader(new FileInputStream(files[i]), fic)); while ((line = br.readLine()) != null) { bw.write(line); bw.newLine(); } br.close(); } bw.close(); } catch (FileNotFoundException e) { System.out.println("ファイルが見つかりません。"); return false; } catch (UnsupportedEncodingException e) { System.out.println("文字コードがサポートされていません。"); return false; } catch (IOException e) { System.out.println("入出力でエラーが発生しました。"); return false; } return true; } }
0 件のコメント:
コメントを投稿