下面这段代码 读取保存之后没有换行 大神们怎么解决啊
package textReader;换行 html 提取 保存 --------------------编程问答-------------------- 加换行符了吗 --------------------编程问答-------------------- 看上去好像你是要过滤掉html标签,这个需求,java的某个包应该提供的吧。楼下说一下是哪个包? --------------------编程问答-------------------- java可能没有,php有这么个函数。
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
public class Demo13_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br=null;
BufferedWriter bw=null;
try {
//先创建FileReader 对象
FileReader fr=new FileReader("d:\\3.txt");
br=new BufferedReader(fr);
//创建FileWriter对象
//FileWriter fw=new FileWriter("d:\\test2.txt");
bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("d:\\test9.txt"), "gbk"));
//循环读取
String s=null;
String str="";
int t=10;
while((s=br.readLine())!=null)
{
//System.out.print(s);
//输出到磁盘
t--;
if(t>0)
{
str+=s+"\n";
// bw.write(str+"\r\n");
}
else{
t=10;
str = getText(str+"\r\n");
bw.write(str);
str=null;
}
}
str = getText(str+"\r\n");
bw.write(str);
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
br.close();
bw.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
public static String getText(String s)
{
String htmlStr = s; // 含html标签的字符串
String textStr = "";
java.util.regex.Pattern p_script;
java.util.regex.Matcher m_script;
java.util.regex.Pattern p_style;
java.util.regex.Matcher m_style;
java.util.regex.Pattern p_html;
java.util.regex.Matcher m_html;
java.util.regex.Pattern p_cont1;
java.util.regex.Matcher m_cont1;
java.util.regex.Pattern p_cont2;
java.util.regex.Matcher m_cont2;
try { String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> // }
String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> // }
String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
String regEx_cont1 = "[\\d+\\s*`~!@#$%^&*\\(\\)\\+=|{}':;',\\[\\].·<>/?~!@#¥%……&*()——+|{}【】‘:”“’_]"; // 定义HTML标签的正则表达式
String regEx_cont2 = "[\\w[^\\W]*]"; // 定义HTML标签的正则表达式[a-zA-Z]
p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); // 过滤script标签
p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); // 过滤style标签
p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); // 过滤html标签
p_cont1 = Pattern.compile(regEx_cont1,Pattern.CASE_INSENSITIVE);
m_cont1 = p_cont1.matcher(htmlStr);
htmlStr = m_cont1.replaceAll(""); // 过滤其它标签
p_cont2 = Pattern.compile(regEx_cont2, Pattern.CASE_INSENSITIVE);
m_cont2 = p_cont2.matcher(htmlStr);
htmlStr = m_cont2.replaceAll(""); // 过滤html标签
textStr = htmlStr;
// textStr = textStr.replaceAll("//?", "");
} catch (Exception e)
{
System.err.println("Html2Text:" + e.getMessage());
} return textStr;// 返回文本字符串
}
}
那你为什么要一行一行的呢? --------------------编程问答--------------------
else{
t=10;
str = getText(str);
str = str+"\r\n";
bw.write(str);
str=null;
}
说不定你把换行符号给replace掉了。 --------------------编程问答--------------------
源文件是一行一行的啊 --------------------编程问答-------------------- 有可能,可是我看不出来啊 --------------------编程问答-------------------- 加了 --------------------编程问答-------------------- 把所有的
bw.write(str);
都改成bw.write(str + "\r\n"); --------------------编程问答--------------------
看不出来,试试就好了啊 --------------------编程问答--------------------
有可能,可是我看不出来啊
else{
t=10;
str = getText(str);
str = str+"\r\n";
bw.write(str);
str=null;
}
说不定你把换行符号给replace掉了。
看不出来,试试就好了啊
String regEx_cont1 = "[\\d+\\s*`~!@#$%^&*\\(\\)\\+=|{}':;',\\[\\].·<>/?~!@#¥%……&*()——+|{}【】‘:”“’_]";可能是这句有问题 --------------------编程问答-------------------- 1,匹配字符串的问题检查一下
2,windows下面换行是\r\n
补充:Java , Java相关