FileReader f0 = new FileReader("1.html");
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(f0);
while((temp1=br.readLine())!=null)
{
sb.append(temp1);
}
String para = sb.toString().replaceAll("<br>","\n");
String textonly = Jsoup.parse(para).text();
System.out.println(textonly);
FileWriter f1=new FileWriter("1.txt");
char buf1[] = new char[textonly.length()];
textonly.getChars(0,textonly.length(),buf1,0);
for(i=0;i<buf1.length;i++)
{
if(buf1[i]=='\n')
f1.write("\r\n");
f1.write(buf1[i]);
在创建新文本文件时,此代码生成多行,我希望文本文件只有一行。我怎么能这样做。
答案 0 :(得分:2)
停止在文件中写入换行符\ n,你应该停止制作多行。
答案 1 :(得分:0)
不是&lt; \ br&gt;和\ n同样的事情?如果你这样做,你的文字就不会有变化。 您需要替换&lt; \ br&gt;有空间。
String para = sb.toString().replaceAll("<br>"," ");
答案 2 :(得分:0)
即使在删除所有\ n后,它会生成多行。
我认为错误在以下代码中:
for( i = 0; i < buf1.length; i++ )
{
if( buf1[ i ] == '\n' )
f1.write( "\r\n" );
f1.write( buf1[ i ] );
当匹配换行符\n
时,您正在将\r\n
写入该文件,并再次使用f1.write( buf1[ i ] )
将相同的字符输入该文件。使用else
将停止再次向文件写入\n
。
for( i = 0; i < buf1.length; i++ )
{
if( buf1[ i ] == '\n' )
{
f1.write( "\r\n" );
}
else
{
f1.write( buf1[ i ] );
}
// ...
} // for
或者使用三元运算符在写入时用\n
替换\r\n
。
f1.write( buf1[ i ] == '\n' ? "\r\n" : buf1[ i ] );