1レコードを2レコードに分けて出力したい
このソースでテキスト入出力しますと
連続番号を付加して入出力できます。
さらに
下記のようにしたいのです。
例
1レコード目 1,テレビ,カメラ,クーラー,扇風機,パソコン
2レコード目 2,時計,マッサーサージ機,HDD,USB,扇風機
入出力後に(先頭に表・裏の"文字"を付加)
1レコード目 表, 1, テレビ, カメラ, クーラー
2レコード目 裏, 扇風機, パソコン
3レコード目 表, 2, 時計, マッサーサージ機, HDD
4レコード目 裏, USB, 扇風機
としたいのです。
1レコード分のデータを表と裏に分けて2レコードずつ出力するのが
目的になります。(先頭に表・裏の文字を付加)
ですので1000レコードでしたらテキスト入出力後2000レコードになります。
下記のような連続番号を付加して入出力する場合
どの箇所を見直す必要があるのでしょうか??
どうぞよろしくお願いします。
package hoge.hoge.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class HelloWorld {
private static String inFileName = "c:\\in.txt";
private static String outFileName = "c:\\out.txt";
/* Shift_JIS, ISP-2022-JP, EUC-JP Windows-31J */
/* 出力時に JISAutoDetect の指定は不可 */
private static String outFileCoding = "Shift_JIS";
public static void main(String[] args) {
try{
String line;
int i = 0;
BufferedReader buf =
new BufferedReader( new InputStreamReader( new FileInputStream( inFileName ), "JISAutoDetect" ) );
/* ファイルが存在しない場合には新たに作成.存在する場合には上書き */
BufferedWriter outFile =
new BufferedWriter( new OutputStreamWriter( new FileOutputStream( outFileName ), outFileCoding ) );
while( (line=buf.readLine()) != null ) {
StringBuffer out = new StringBuffer();
i++;
out.append(Integer.toString(i));
out.append(":");
out.append(line);
outFile.write(out.toString());
outFile.newLine();
System.out.println(out);
}
buf.close();
outFile.flush();
outFile.close();
}
catch(IOException e) {
e.printStackTrace();
System.exit(1);
}
}
}
お礼
ありがとうございます。 ファイルを開くエディタが文字コードの判別に失敗しているだけで 実際はShift_JIS、CRLFでデータが作成されていました。 お騒がせしました。