我有大约数千行类型:
<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行。
答案 0 :(得分:2)
你正在打开和关闭while循环中的文件。你想把它移到主循环之外,所以你打开文件一旦关闭文件直到最后。
因此,在循环的每次迭代中,您都要覆盖文件,因此文件的内容将只是循环的最后一次迭代计算的内容。
答案 1 :(得分:0)
如果使用sed是一个选项,那么
cat file1 | sed 's/\<.*\>//' > file2
应该做的伎俩