1

改行文字のないファイルがあります。160文字ごとに改行文字が欲しいです。

これを行うには、ファイルを読み取ってから、次のようにします。

String newLine = "";
int lineSize = 160;
char[] line = new char[lineSize];
while (rEntrada.read(line) > 0) {
   newLine = new String(line);
   String parsedLine = parseLine(newLine, date);
   fw.write(parsedLine);
}

ここで、parseLineは行の余分な解析を処理します。私の主な質問は、whileループ内で「新しい文字列」を実行することが非効率的であるか、推奨されていないか、またはこのコードでより適切に実行できる何かを見つけたかどうかです。私は本当にコーディングを上手にしようとしています!

ありがとう!

4

3 に答える 3

2

これを試して。

  • 最初に 1 行を読みます。

    FileReader r = new FileReader(new File("<file-name>"));
    // A buffered reader is fast
    BufferedReader = reader = new BufferedReader(r);
    

    String line = reader.readLine();
    // Also use try-catch blocks!
    
  • 次に、文字列を反復処理し、\n160番目の位置ごとに a を挿入します。

    StringBuilder sb = new StringBuilder();
    int counter = 0;
    

    for (int i=0; i<line.length(); i++){
        sb.append(line.charAt(i));
        counter++;
        if (counter==160){
            sb.append("\n");
            counter = 0;
        }
    }
    

    line = sb.toString();
    
  • これで、この行をファイルに書き込むことができます。

于 2012-11-20T14:38:05.057 に答える
1

私には良さそうに見えparseLineます。それは実際に何をするかに依存します。linenewLineparseLine

于 2012-11-20T14:28:06.243 に答える
0

StringBuffer を見て、この場合に使用できないかどうかを確認してください。

StringBuffer API ドキュメント

マルチスレッドでない場合は、 StringBuilderも興味深いかもしれません。

于 2012-11-20T14:26:37.477 に答える