• CRLF和LF以及对应的坑


    CRLF和LF的区别

    • CR:回车
    • LF:换行

    使用VSCode打开文件,右下角显示文件的换行方式:

    • CRLF即使用回车+换行表示换行
    • LF仅使用换行表示换行

    相关的坑

    使用不同的换行方式,可能导致各种稀奇古怪的问题,例如文件数据如下:

    abcdefg
    hijklmno
    pqrstu
    vwxyz
    

    使用如下代码读取数据:

    // 每读取2个字符然后跳过一个字符
    for {
    	data := make([]byte, 2)
    	_, err := f.Read(data)
    	if err != nil {
    		break
    	}
    	f.Seek(1, 1)
    	log.Println(string(data))
    }
    
    • 对于CRLF换行方式的文件,输出结果是:
    2022/01/13 20:11:25 ab
    2022/01/13 20:11:25 de
    2022/01/13 20:11:25 g
    2022/01/13 20:11:25 hi
    2022/01/13 20:11:25 kl
    2022/01/13 20:11:25 no
    2022/01/13 20:11:25
    p
    2022/01/13 20:11:25 rs
    2022/01/13 20:11:25 u
    2022/01/13 20:11:25 vw
    2022/01/13 20:11:25 yz
    
    • 对于LF换行的文件而言,输出是:
    2022/01/13 20:12:24 ab
    2022/01/13 20:12:24 de
    2022/01/13 20:12:24 g
    
    2022/01/13 20:12:24 ij
    2022/01/13 20:12:24 lm
    2022/01/13 20:12:24 o
    
    2022/01/13 20:12:24 qr
    2022/01/13 20:12:24 tu
    2022/01/13 20:12:24 vw
    2022/01/13 20:12:24 yz
    

    由上可以看出,

    • 对于使用CRLF换行的文件,每次换行由两个字符:CR(回车)、LF(换行)组成。例如:第三个输出结果是"g ",第四个输出是"hi"。即第三次读取"g"和"回车键",然后跳过换行键,第四次读取"hi"。
    • 对于使用LF换行的文件,从第三次结果可以看出,结果是"g" + "换行键",跳过后续的"h",第四次读取"ij"。

    本文来自博客园,作者:战五渣渣渣渣渣,转载请注明原文链接:https://www.cnblogs.com/truestoriesavici01/p/15799537.html

  • 相关阅读:
    委托、事件入门(转)
    ArcToolBox——Clip 批量处理
    Geometry 对象浅析 ( 作者:Flyingis)
    AE数据加载
    ADO.NET 的最佳实践技巧(转)
    android调用.net wcf 服的方法
    winform调用dos命令
    变位词实现 编程珠玑一处错误
    元素翻转
    80X86学习笔记转移指令
  • 原文地址:https://www.cnblogs.com/truestoriesavici01/p/15799537.html
Copyright © 2020-2023  润新知