0

テキスト ファイルから読み取り、すべての "," を "\n" に置き換え、結果を新しいテキスト ファイルに書き込む必要があります。私のテキスト ファイルは大きく (16 MB)、このタスクを完了するのに数時間かかります。それをより速く実装する他の方法はありますか?

public static void main(String [] args) throws IOException {
        String fileName = "file1.txt";  // The name of the file to open.
        String s="";                // This will reference one line at a time

        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
        int c, n=0;
        char character;

        while((c = reader.read()) != -1) {
           character = (char) c;
           if ( character == ',')
               s = s + "\n";
           else
               s += character;
        }
        reader.close();

        PrintWriter out = new PrintWriter("fileName1.txt");

        out.println(s);   
        out.close();
}
4

4 に答える 4

3
  1. 1文字ずつ読むのではなく、1行ずつ読む。
  2. 読み取った行ごとに、 replaceAll()メソッドを呼び出して、すべてのコンマを「\n」に置き換えます。
  3. BufferedWriter を使用する
于 2013-08-07T03:26:31.663 に答える
2

ある種の Unix を使用している場合は、コマンド ラインを使用するだけで済みます。

sed 's/,/\n/g' input.txt > output.txt
于 2013-08-07T03:28:16.103 に答える
1

文字列の連結に時間が費やされます。その必要はありません。FileWriter処理が終了したときに各行を書き出すか、実際には各文字を書き出すことができます。後者の場合は、必ずBufferedWriter.

于 2013-08-07T03:30:35.533 に答える