Iam*_*NaN 5

正如@Dave C在评论中已经指出的那样,你遇到了MaxScanTokenSize = 64*1024

要解决这个限制,请使用bufio.Reader,它具有适合您的情况的ReadString(delim byte)方法.

从Scanner go doc(特别是最后一句):

扫描仪为读取数据提供了方便的界面,例如换行符分隔的文本行.对Scan方法的连续调用将逐步执行文件的"标记",跳过标记之间的字节.令牌的规范由SplitFunc类型的split函数定义; 默认拆分功能将输入分为线路终端剥离的行.此程序包中定义了拆分函数,用于将文件扫描为行,字节,UTF-8编码的符文和空格分隔的单词.客户端可以改为提供自定义拆分功能.

扫描在EOF(第一个I/O错误)或令牌太大而无法放入缓冲区时无法恢复.当扫描停止时,阅读器可能已经远远超过最后一个令牌.需要更多控制错误处理或大型令牌或必须在读取器上运行顺序扫描的程序应该使用bufio.Reader.