这段代码是参照慕课网的视频教程,主要是f.Seek(0, os.SEEK_END)移动到末尾,但是里面有个小问题,当打开的文件被重新清空内容的清空下,就再也不能到读取数据了,比如在开启读取后 echo ''>1.log 这样就再也读不到了,tail包是解决了这个问题的

package main

import (
"bufio"
"fmt"
"io"
"os"
"strings"
"time"
) func main() {
readChannel := make(chan string)
go readFile(readChannel)
for r := range readChannel {
fmt.Println(r)
}
}
func readFile(readChannel chan string) {
f, err := os.Open("1.txt")
if err != nil {
panic(fmt.Sprintf("open file error:%s", err.Error()))
}
//移动到文件末尾
f.Seek(, os.SEEK_END)
reader := bufio.NewReader(f)
for {
line, err := reader.ReadBytes('\n')
fmt.Println(err)
if err == io.EOF {
time.Sleep(time.Second)
continue
} else if err != nil {
panic("ReadBytes error:" + err.Error())
} lineStr := strings.TrimSpace(string(line))
readChannel <- lineStr
}
}

使用tail包测试时,有re-open文件

最新文章

  1. Android之ContentProvider数据存储
  2. c++中的数据类型
  3. 优化PHP程序的方法(温故知新)
  4. JavaScript高级程序设计 读书笔记 第一章
  5. 自己写的一个关于Linq to Entity 动态查询的例子
  6. Oracle的锁表与解锁
  7. Lucene的Vint类型详解
  8. 为什么要使用jQuery?
  9. OpenCV学习笔记:如何扫描图像、利用查找表和计时
  10. (转)Apache2 httpd.conf 配置详解 (二)
  11. ie textarea不支持maxlength textarea限制长度
  12. c 整数的逆序输出 输入3,2就算 2+22+222的结果
  13. Chapter 1 Mr.Sherlock Holmes
  14. PHP上传文件大小的修改
  15. 21.jQuery
  16. 使用scrapy爬虫,爬取17k小说网的案例-方法一
  17. C#基础知识之Dictionary
  18. ListView 上拉加载更多
  19. win7 / mysql-8.0.11-winx64 安装的测坑步骤
  20. 云计算概述和KVM虚拟化

热门文章

  1. java之动态代理设计模式
  2. asp.net core 3.0获取web应用的根目录
  3. Python 中国象棋源码 V1
  4. Leetcode题解 - DFS部分简单题目代码+思路(113、114、116、117、1020、494、576、688)
  5. Iterable与Collection源码学习
  6. English:2019100401_Suffix&quot;ery&quot;
  7. Android UI开发之开源控件项目整理
  8. Linux学习入门-------------------------VMvare与镜像的安装与配置
  9. Oracle - crfclust.bdb文件太大
  10. phpStorm+xdebug调试(php7.3)