FileOutputStream写入数据时\n问题

文章讨论了在Windows10操作系统中,使用FileOutputStream创建文本文件时, 字符被正确识别为换行。然而,当从文本文档直接输入换行时,FileInputStream在读取时会识别 。这表明在编程时需要注意不同系统的换行表示方式。
摘要由CSDN通过智能技术生成

发现了个问题:

2023/3/2 Windows 10操作系统中

利用FileOutputStream()创建文件并且添加内容后,里面的\n是可以被Windows自带的文本文档识别的,也就是说存入的只是一个\n(转行)字符,如下代码:

FileOutputStream fox = new FileOutputStream("File_and_IO\\fileOut04.txt");
byte[] bytes = "Hello\n".getBytes();
byte[] bytes1 = "Learn\n".getBytes();
fox.write(bytes);
fox.write(bytes1);
fox.close();

之后通过FileInputStream()去读取该程序时,若我们使用byte字符数组输出,识别到的也只是一个\n

FileInputStream fis = new FileInputStream("File_and_IO\\fileOut04.txt");
byte[] bytes = new byte[5];
int by = fis.read(bytes);
System.out.println(by);
System.out.println(new String(bytes));
by = fis.read(bytes);
System.out.println(by);
System.out.println(new String(bytes));

如果我们直接新建txt文件,内容也是hello换行learn,则通过上述代码读取该文件,它会多识别出\r\n

操作系统中识别换行符:

  • windows:\r\n

  • linux:\n

  • mac:\r

总结:FileOutputStream在写入数据时:\n也能被识别(通过系统记事本打开它也是换行的);而我们如果在记事本中输入后直接换行,在FIleInputStream中读取的时候会读取\r\n;所以在我们写程序的时候需要注意,假如你txt写入的数据是通过FileOutputStream写的,换行只是一个字符。如果用记事本写的,换行会是两个字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值