从数据库取的字符串中含\r\n回车换行符,在写入文本文件时原样写入了文本文件,而不是表现为回车换行。怎样做到在写入文本文件是直接表现为回车换行,而不是原样把转义字符写入文件?

解决方案 »

  1.   

    我用的FileWriter 就没有出现你说的情况...
    不知道LZ 用的是什么写的...
      

  2.   

    那个没有,可以直接
    SELECT '
    ' FROM DUAL
    这样能查出来回车
      

  3.   

    下面是我的语句:PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(file,true)));
    ……
    ResultSet rs=……;
    out.prinln(rs.getString(1));的的确确 存在上述问题!
      

  4.   

    而且 
    out.println("a\r\nb");写入文件时已经把转义字符翻译为回车换行了
    把数据库里的这个串取出写就不行。out.println(rs.getString(1));会把\r\n写入文件
      

  5.   

    你用out.print();这样应该不会出现回车换行吧,println本身就是回车换行的打印
      

  6.   

    to fengmingjie(木林森) :试了 没影响 只是末尾少了个回车换行而已
      

  7.   

    楼主的意思是你的数据库中的内容是: \r\n
    实际上是   \ ,  r , \ , n    四个字符,而并不是楼主所想的  '\r', '\n' 两个字符。在 java 源代码中写  "\r\n" 实际上是 2 个字符。
    楼主需要理解一下转义字符(\)现在的情况,楼主试试:
    out.println(rs.getString(1).replaceAll("\\\\r\\\\n", "\r\n"));为什么要用四个斜杠,楼主参考:
    http://www.regexlab.com/zh/regref.htm
    以及
    String 的 replaceAll 方法。
      

  8.   

    to sswater(光杆兵):有道理!问题还是出在我比较心虚的数据保存上!请问回车换行在入库时应该怎样保存,使得我读时直接写文件就可了?
      

  9.   

    用 write 不是 print .就应该没有问题了.
      

  10.   

    很简单,完全不变地把数据库里的这个字符串输出到文本文件就OK了.\r\n是不会消失的.呵呵.
      

  11.   

    好像你是想把\r\n这个回车换行转换为"\r\n"四字符的字符串,我看错了不好意思.
      

  12.   

    to sswater(光杆兵):
    照您的方法试了 没效果
      

  13.   

    to AreamArgentateOfWing(梦幻银翼) :用write也没效果
      

  14.   

    File f = new File("C:\test.txt");
    f.createNewFile();
    FileWriter fw = new FileWriter(f);
    fw.write("_test is now!\n");
    fw.close();我就能写进去...
      

  15.   

    AreamArgentateOfWing(梦幻银翼):看清问题
      

  16.   

    File f = new File("C:\test.txt");
    f.createNewFile();
    FileWriter fw = new FileWriter(f);
    fw.write("_test is now!\\r\\n");
    fw.close();