我想提取一个以String名称开头并以空行结尾的文本文件的一部分
以下是我的尝试:
public File CreateSubscripberFile(File file,String name) throws IOException
{
FileWriter fw = new FileWriter(f);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null){
if(line.equals(name))
{
while (((line = br.readLine()) != null) && (!(line.equals("\n"))))
{
fw.write(line);
System.out.println(line);
}
}
}
br.close();
fr.close();
fw.close();
return f;
}
但是我得到了原始文件!
答案 0 :(得分:0)
尝试替换:
(line = br.readLine())!=null)
使用:
(!(line = br.readLine()).equals(""))
此示例中的null表示“没有更多行”,而.equals(“”)则表示空行。
答案 1 :(得分:0)
通过编辑这样的代码来完成
public File CreateSubscripberFile(File file,String name,String fname) throws IOException
{
File f= new File(fname);
FileWriter fw = new FileWriter(f);
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null){
if(line.equals(name))
{
String line1 = br.readLine() ;
while(line1 != null && !line1.isEmpty() )
{
System.out.println(line1);
line1=br.readLine();
}
}
}
br.close();
fw.close();
return f;
}