import java.io.*;
class Test{
public static void main(String args[]){
try{
// 出力用ストリーム
FileWriter fw = new FileWriter(args[0]);
PrintWriter pw = new PrintWriter(fw);
// バイト入力ストリームから文字入力ストリームにしなおす
InputStreamReader isr = new InputStreamReader(System.in);
// ストリームトークナイザー
StreamTokenizer st = new StreamTokenizer(isr);
// ストリームトークナイザーを設定する
st.ordinaryChar('/'); // スラッシュを通常文字に
st.wordChars('\'','\''); // アポストロフィを単語文字に
int nPreLine = 0; // 前のトークンの行
boolean bContinue = true; // 続行フラグ
while( (st.nextToken() != st.TT_EOF) && bContinue ){
// 一番最初はここに入る
if( nPreLine == 0 )
nPreLine = 1;
// 行が変わっていたら改行する
else if( nPreLine != st.lineno() ){
pw.println();
nPreLine = st.lineno();
}
// それ以外はカンマを書き込む
else
pw.print('\t');
switch(st.ttype){
// 単語の場合
case st.TT_WORD :
pw.print(st.sval);
break;
// 数字の場合
case st.TT_NUMBER:
pw.print(st.nval);
break;
// その他の場合
default:
if( (char)st.ttype == '/' )
// 終了文字か?
bContinue = false;
else if( (char)st.ttype == '\"' )
// ダブルクォーテーションか?
pw.print('\"' + st.sval + '\"');
else
pw.print((char)st.ttype);
break;
}
}
// ストリームのクローズ
pw.close();
fw.close();
isr.close();
}catch(ArrayIndexOutOfBoundsException e){
System.err.println("ファイル名が入力されていません");
}catch(FileNotFoundException e){
System.err.println("ファイルが作れません:" + arg[0]);
}catch(Exception e){
System.err.println(e);
}
}
}
|