文件为 D:\test.txt内容如下:
序号:1
姓名:某某某
性别:男
职业:其他序号:2
姓名:某某某
性别:女
职业:其他请问我如何把文字和格式(主要是:空格,回车,换行)显示出来?
关键是如何知道这个字符是 空格 还是回车 还是换行?

解决方案 »

  1.   

    用readLine()方法,可以把转义字符照原样打印出来
    不用担心是空格,还是回车换行
      

  2.   

    interhanchi(艰难困苦,玉汝于成!)所提的\s是正则表达式里的转义符,代表所有的空白字符:
    \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")
      

  3.   

    我想把 冒号 之前的(包括冒号)放到一个第一列, 冒号之后的放在第二列
    如下
    序号:1
    姓名:某某某
    性别:男
    职业:其他
    转换HTML后是
    <br>序号:<br><br>1<br>
    <br>姓名:<br><br>某某某<br> 
    ......
      

  4.   

    今天蛮空的,那就写写吧。
    //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);
    }
    }