ツールとして作成しているため、効率とか考えてません。
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 ChangeCodeClass { /** * 入力ファイル(input)の文字コード(fic)を文字コード(foc)で出力ファイル(output)を作成する * @param fi input file * @param fic input file's code * @param fo output file * @param foc output file's code * @return boolean true : succeeded, false : failed */ public boolean changeCode(File fi, String fic, File fo, String foc) { BufferedReader br = null; BufferedWriter bw = null; String line = null; if (fi == null || fo == null || fic == null || fic.equals("") || foc == null || foc.equals("")) { System.out.println("パラメータに誤りがあります。"); return false; } else if (fi.isDirectory() || fo.isDirectory()) { System.out.println("ファイルではありません。"); return false; // } else if (!fi.canRead() || !fo.canWrite()) { // System.out.println("読み込みまたは、書き込みが出来ません。"); // return false; } else if (!fi.exists()) { System.out.println("入力ファイルが存在しません。"); return false; } else if (fo.exists()) { System.out.println("出力ファイルと同名のファイルが存在します。"); return false; } else if (fi.getPath().equals(fo.getPath())) { System.out.println("入力ファイルと出力ファイルが同一のパスです。"); return false; } try { br = new BufferedReader(new InputStreamReader(new FileInputStream(fi), fic)); bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fo), foc)); while ((line = br.readLine()) != null) { bw.write(line); bw.newLine(); } bw.close(); br.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 件のコメント:
コメントを投稿