2012-06-23 9 views
0
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

@Kazekage "buf1" не является строкой, это символ. И после удаления «\ n», как вы сказали, это не делает только одну строку, она дает тот же результат, что и prev. – mkp

+0

@JB Сэр мой код компилирует и дает результат, но не в одной строке. – mkp

+0

«Единственное», что делает ваш код, - это заменить все «
» на новую строку. Если вы хотите, чтобы он прекратил создавать новые строки, прекратите делать это и/или замените «
» на что-то еще. (Я ничего не знаю о html, но не «
» также правильный синтаксис? И если так нужно обрабатывать одинаково?) – esej

ответ

0

даже после удаления всех \ п она делает несколько строк.

Я думаю, что ошибка в следующем коде:

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 ]); 
+0

благодарит за полезные предложения. – mkp

2

Остановить запись символов новой строки \ n в файл, и вы должны прекратить создавать несколько строк.

+0

даже после удаления всех \ n он создает несколько строк. – mkp

0

Это не < \ br> и \ n такой же вид вещь? если вы это сделаете, изменений в тексте не будет. Вам нужно заменить < \ br> пробелом.

String para = sb.toString().replaceAll("<br>"," "); 
Смежные вопросы