[Go] go等待读取最后一行的数据内容
2024-08-28 14:14:57
这段代码是参照慕课网的视频教程,主要是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文件
最新文章
- Android之ContentProvider数据存储
- c++中的数据类型
- 优化PHP程序的方法(温故知新)
- JavaScript高级程序设计 读书笔记 第一章
- 自己写的一个关于Linq to Entity 动态查询的例子
- Oracle的锁表与解锁
- Lucene的Vint类型详解
- 为什么要使用jQuery?
- OpenCV学习笔记:如何扫描图像、利用查找表和计时
- (转)Apache2 httpd.conf 配置详解 (二)
- ie textarea不支持maxlength textarea限制长度
- c 整数的逆序输出 输入3,2就算 2+22+222的结果
- Chapter 1 Mr.Sherlock Holmes
- PHP上传文件大小的修改
- 21.jQuery
- 使用scrapy爬虫,爬取17k小说网的案例-方法一
- C#基础知识之Dictionary
- ListView 上拉加载更多
- win7 / mysql-8.0.11-winx64 安装的测坑步骤
- 云计算概述和KVM虚拟化
热门文章
- java之动态代理设计模式
- asp.net core 3.0获取web应用的根目录
- Python 中国象棋源码 V1
- Leetcode题解 - DFS部分简单题目代码+思路(113、114、116、117、1020、494、576、688)
- Iterable与Collection源码学习
- English:2019100401_Suffix";ery";
- Android UI开发之开源控件项目整理
- Linux学习入门-------------------------VMvare与镜像的安装与配置
- Oracle - crfclust.bdb文件太大
- phpStorm+xdebug调试(php7.3)