2016-07-13 17 views
0

ファイル内の特定の行の前にデータを追加するにはどうすればよいですか?画像のように私はCondition1タグの前に何かを追加したいと思いますが、そうすることはできません。私は次の行の値を持つ次の変数を使用しようとしましたが、それでも私が望むStringを追加しません。ファイル内の特定の行の前にデータを追加するにはどうすればいいですか?

String ex ="<Condition1>"; 
while((line = br.readLine()) != null) 
     { 
if(next.trim().startsWith(ex)) 
       { 
        String b="\n" 
         +"<AdditionalECUVariables>"+ 
         "var_3 \n" 
        +"var_4 \n" 
         +"var_5 \n" 
        +"var_6 \n"; 
        bw.write(b); 
       } 

enter image description hereenter image description here

+1

使用 'line'の代わりに、 'next' – Jens

+0

ファイルからの読み込みにすでに行が使用されています。次に、次の行を取得するために使用した別の変数です。たとえば、140行目が次にある場合141 –

+0

' next'は必要ありません。あなたの行が条件に一致する場合、行の前に新しいテキストを書く – Jens

答えて

0

このコードは、ほとんど大丈夫に見えます。私は、どこかにbw.write(line)のような行があると仮定しますか?そうでない場合は、必ず追加してください。例:

String ex = "<Condition1>"; 
while ((line = br.readLine()) != null) { 
    // If this is the line we want to insert before... 
    if (line.startsWith(ex)) { 
     String b = "\n" + 
        "<AdditionalECUVariables>" + 
        "var_3\n" + 
        "var_4\n" + 
        "var_5\n" + 
        "var_6\n"; 
     // Write out our added data. 
     bw.write(b); 
    } 
    // Always write out the line itself. 
    bw.write(line); 
} 

EDIT

(私はどこでもあなたのコード内で定義されて表示されませんでした、私はline代わりのnextをも使用していることに注意してください。)

+0

うん、私はそれを使用しましたが、新しいファイルを作成し、条件1の前に文字列が追加されたかどうかを確認するときに問題が発生します。 –

+0

あなたが書いたことは分かりません。入力ファイルの例とコードからの出力を与えることができます。 – smarx

+0

私の編集も見てください。 'next'の代わりに' line'を使う必要があります。 – smarx

関連する問題