Java txt文本的追加、换行问题

 

   public void test() throws Exception{

       File file = new File("c:/test.log");

       RandomAccessFile rf = new RandomAccessFile(file, "rw");

       long fileLength = rf.length();

       // 将本件指针移到文本末尾

       rf.seek(fileLength);

       // 文本文件追加文本,换行符

       rf.writeBytes("11111/n");

       // rf.writeBytes("1111 /r/n")

       rf.close();

    }

 

//  rf.writeBytes("11111/n");

程序执行上述语句:

在文本文件中有很多小黑块,因为在这个文件里面的换行标志只有一个字符,

也就是ASCII码的10,而在Windows中,换行是采用两个字符表示的,即回车加换行,也就是ASCII码的13和10。

当打开这样的文件时,

由于在这个文件当中只有换行,没有回车,所以记事本程序就把它解析成了小黑块。

 

 

解决办法:

 

       System.out.println(System.getProperty("line.separator").length());// 2

       String str = System.getProperty("line.separator");

       for(int i=0;i<str.length();i++)

           // 打印 ASCII 码

           System.out.print((int)str.charAt(i)+" "); // 13 10

       System.out.println();

---------------------------------------------

long fileLength = rf.length();

 String lineSeparator = System.getProperty("line.separator");
  rf.writeBytes("11111"+lineSeparator);

第一次执行 fileLength == 0

第二次执行 fileLength == 7   // 11111 + "/r/n"  

---------------------------------------------------------------------

 

 

 

 

第三次执行 fileLength == 14

在 java 中 System.getProperty("line.separator").length() == 2

将字符写入文本文件而已

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值