2011年6月8日水曜日

JAVA 固定長ファイル改行コード挿入処理

固定長のファイルに改行コードを挿入するクラスです。
使用方法
第一引数fiは、入力ファイル
第二引数foは、出力ファイル
第三引数bCntは、改行を挿入する位置

public static void main(String[] args) {
}
を実装して使ってみてください。


import java.util.regex.Pattern;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class InsertReturnCode {
 public boolean insertReturnCode(File fi, File fo, int bCnt){
  BufferedInputStream bi = null;
  BufferedOutputStream bo = null;
  String line = null;
  if (fi == null || fo == null ) {
   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 {
   byte[] b = new byte[bCnt];
   int i = 0;
   bi = new BufferedInputStream(new FileInputStream(fi));
   bo = new BufferedOutputStream(new FileOutputStream(fo));
   while (bi.read(b, 0, bCnt) > -1) {
    bo.write(b, 0 ,bCnt);
    bo.write(new byte[]{0,10});
    i++;
   }
   bi.close();
   bo.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 件のコメント:

コメントを投稿