从每行删除特定文本

时间:2013-01-21 22:19:15

标签: java string

我有大约数千行类型:

<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行。

2 个答案:

答案 0 :(得分:2)

你正在打开和关闭while循环中的文件。你想把它移到主循环之外,所以你打开文件一旦关闭文件直到最后。

因此,在循环的每次迭代中,您都要覆盖文件,因此文件的内容将只是循环的最后一次迭代计算的内容。

答案 1 :(得分:0)

如果使用sed是一个选项,那么

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

应该做的伎俩