通过不仅仅读取行来拆分大文本文件

时间:2013-04-16 23:03:15

标签: io go fseek

我有一个大文本文件,我想分成任意数量的小文件。我需要的行为几乎与split终端命令相同,只是我需要文件在其最后一行重叠。也就是说,第一个文件的最后一行是第二个文件的第一行,第二个文件的最后一行是第三个文件的第一行,等等。

天真的解决方案似乎从原始文本文件中读取行并在必要时拆分。我想知道是否有一个标准库函数可以让我处理字节而不是字符串来更容易地统一分割文本文件。

在Go中是否有类似于fseek的内容可以让我这样做?

1 个答案:

答案 0 :(得分:5)

例如,

  

Package os

     

func (*File) Seek

     

func (f *File) Seek(offset int64, whence int) (ret int64, err error)

     

Seek将文件中的下一个offsetRead的{​​{1}}设置为Write,   根据{{​​1}}解释:0表示相对于原点   file,1表示相对于当前偏移量,2表示相对于   结束。它返回新的偏移量和错误(如果有的话)。