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 回答