博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件首行为空白行,为什么该行字符串长度为1(line.length()=1)
阅读量:4704 次
发布时间:2019-06-10

本文共 524 字,大约阅读时间需要 1 分钟。

问题描述:最近编写程序遇到一个问题,文件首行的内容为空,但调用line0.length()返回的确为1 。如下图:

 

最初认为可能存在制表符,或者换行符的原因,于是调用了line0.trim();方法,but然并卵。如下图:

最后调用line0.getBytes();发现确实存在数据。如下图:

并且发现文件格式为utf8 BOM,如下图:

试验了gb2312,utf8,ASCII格式的文件,line0.length()均返回0,唯独utf8 BOM格式的文件line0.length()返回1,称之为BOM头"[-17 , -69 , - 65]".

 

结论:读取utf-8 BOM格式的文件首行字符串长度为首行内容字符串长度+1。

   BOM头.length() = 1;

         line0.length() = BOM头.length() + line0.length();

ps: 亲测utf8格式的文件经过windows记事本打开保存后,自动转换成utf8 BOM格式的文件.

     挨踢狗个人观点:平常编辑文本时,尽量不要用windows记事本。

转载于:https://www.cnblogs.com/xxyfhjl/p/5588171.html

你可能感兴趣的文章
程序猿 面试经历
查看>>
苹果IOS 12将使您的iPhone更安全,并有更强大的黑客保护
查看>>
项目冲刺,第二天
查看>>
JarvisOJ Misc 炫酷的战队logo
查看>>
虚拟机Linux5下安装MyEclipse2014的步骤
查看>>
函数练习
查看>>
nginx 基本入门
查看>>
解决Non-resolvable parent POM: Could not find artifact 出现的问题
查看>>
MySQL的C语言接口大全
查看>>
第九周作业
查看>>
DOM_05之DOM、BOM常用对象
查看>>
【Mongodb】---Scheme和Collections对应问题
查看>>
团队作业个人博客02
查看>>
改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)
查看>>
大型高性能ASP.NET系统架构设计
查看>>
php : 基础(6)
查看>>
在Linux自己Home下安装python
查看>>
SceneGrabber NET 视频批量自动截图软件使用技巧
查看>>
Codeforces985E. Pencils and Boxes (单调队列)
查看>>
python 打印进度条
查看>>