2009年6月17日水曜日

javaとperl/phpの違和感

javaとperl/phpはかなり違うのは当たり前なんだが、
ちょこちょこ困るなと思うのはjavaは基本的に
ファイル入力(読み込み)では末端の改行を基本的に読み込まない。
※読み込み方にもよるけどFileInputStreamとか使った下記みたいなノーマルなやり方は含まない
String path = "C:/in_file";
File dir = new File(path);
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
File file = files[i];
String fileName=file.getName();
FileInputStream fis = null;
InputStreamReader ir = null;
BufferedReader br = null;
//LineNumberReader lnr = null;
StringBuilder buf = new StringBuilder();
try{
fis = new FileInputStream(file);
ir = new InputStreamReader(fis , "utf-8");
br = new BufferedReader(ir);
String line;

//---1行ずつ表示
while((line = br.readLine()) != null){
buf.append(line+"\n");
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
//---ファイルを閉じる
// lnr.close();
}catch(Exception e){
}
}

これがperlやphpだと改行がだいたい含まれて状態になる。perlでいうrtrimとか作業が場合によっては必要。
これでよく混乱しちゃって困る。統一してほしいもんだ。

1 件のコメント: