0

私はタイプの約千行を持っています:

<option value="1436">Some text
<option value="36">Some text

一部を除いて、新しいファイルを保存したい<...>。私が書いているコードは次のとおりです。

try{
    FileInputStream fs= new FileInputStream(f);
    Scanner s= new Scanner(fs);
    while (s.hasNext()){
        String sentence=s.nextLine();
        int l=sentence.length();
        try{//printing P
            BufferedWriter bw = new BufferedWriter(new FileWriter("Ps.txt"));
            for (int i=0;i<l;i++){
                if (sentence.charAt(i)=='>'){
                    for (int j=i+1;j<l;j++)
                    bw.write(sentence.charAt(j));
                }
                bw.newLine();
            }
            bw.close();
        }   
        catch(Exception e){}
    }
}

ただし、出力ファイルに 3 ~ 4 行を格納するだけです。

4

2 に答える 2

2

whileループ内でファイルを開いたり閉じたりしています。メインループの外に移動したいので、一度ファイルを開いて最後までファイルを閉じないでください。

したがって、ループの反復ごとにファイルが上書きされるため、ファイルの内容はループの最後の反復によって計算されたものだけになります。

于 2013-01-21T22:29:06.093 に答える
0

sed の使用がオプションの場合、

cat file1 | sed 's/\<.*\>//' > file2

トリックを行う必要があります

于 2013-01-21T22:24:10.947 に答える