文件为 D:\test.txt内容如下:
序号:1
姓名:某某某
性别:男
职业:其他序号:2
姓名:某某某
性别:女
职业:其他请问我如何把文字和格式(主要是:空格,回车,换行)显示出来?
关键是如何知道这个字符是 空格 还是回车 还是换行?
序号:1
姓名:某某某
性别:男
职业:其他序号:2
姓名:某某某
性别:女
职业:其他请问我如何把文字和格式(主要是:空格,回车,换行)显示出来?
关键是如何知道这个字符是 空格 还是回车 还是换行?
不用担心是空格,还是回车换行
\t\n\x0B\f\r,(正则表达式你可以去查Pattern类的javadoc)。要实现你的目的,不需要用到正则。只要遍历文件时把每个字符和这些空白字符比较就行了(或者也可以用String.replaceAll()替换文件中的所有这类字符)。
注:
\t The tab character ('\u0009') 制表符
\n The newline (line feed) character ('\u000A') 换行符
\r The carriage-return character ('\u000D') 回车符还有一种发现\r,\n的方法:用StringBuffer类的readLine()得到行,在每一行的末尾添加System.getProperties("line.separator")
如下
序号:1
姓名:某某某
性别:男
职业:其他
转换HTML后是
<br>序号:<br><br>1<br>
<br>姓名:<br><br>某某某<br>
......
//Print.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;class Print{
public static void make(File oldFile,File newFile) throws Exception{
BufferedReader reader = new BufferedReader(new FileReader(oldFile));
BufferedWriter w = new BufferedWriter(new FileWriter(newFile));
String line = null;
int index = -1;
while((line = reader.readLine())!=null){
if((index = line.indexOf(":"))>-1){
w.write("<br>");
w.write(line.substring(0,index+1));
w.write("<br>");
w.write("<br>");
w.write(line.substring(index+1));
w.write("<br>");
w.newLine();
}else{
w.write(line);
w.newLine();
}
}
reader.close();
w.close();
}
public static void main(String[] a) throws Exception{
File oldF = new File("d:\\old.txt");
File newF = new File("d:\\new.txt");
Print.make(oldF,newF);
}
}