相关疑难解决方法(0)

go中逐行读取文件

我无法file.ReadLine在Go中找到功能.我可以弄清楚如何快速写一个,但只是想知道我是否在这里忽略了一些东西.如何逐行读取文件?

string parsing file line go

286
推荐指数
9
解决办法
25万
查看次数

将文本文件读入字符串数组(并写入)

能够将文本文件读入(或写入)字符串数组的能力是我认为相当普遍的要求.当从最初需要访问数据库的语言开始时,它也非常有用.Golang中是否存在一个?
例如

func ReadLines(sFileName string, iMinLines int) ([]string, bool) {
Run Code Online (Sandbox Code Playgroud)

func WriteLines(saBuff[]string, sFilename string) (bool) { 
Run Code Online (Sandbox Code Playgroud)

我宁愿使用现有的而不是复制.

go

94
推荐指数
4
解决办法
11万
查看次数

如何使用Go每10秒从一个大文件中读取最后一行

如何从大日志文件中读取最后两行而不将其完全加载到内存中?

我需要每10秒阅读一次(在Win机器上)...而且我试图读取最后一行...

package main

import (
    "fmt"
    "time"
    "os"
)

const MYFILE = "logfile.log"

func main() {
    c := time.Tick(10 * time.Second)
    for now := range c {
        readFile(MYFILE)
    }
}

func readFile(fname string){
    file, err:=os.Open(fname)
    if err!=nil{
        panic(err)
    }
    buf:=make([]byte, 32)
    c, err:=file.ReadAt(32, ????)
    fmt.Printf("%s\n", c)


}
Run Code Online (Sandbox Code Playgroud)

日志文件类似于:

07/25/2013 11:55:42.400, 0.559
07/25/2013 11:55:52.200, 0.477
07/25/2013 11:56:02.000, 0.463
07/25/2013 11:56:11.800, 0.454
07/25/2013 11:56:21.600, 0.424
07/25/2013 11:56:31.400, 0.382
07/25/2013 11:56:41.200, 0.353
07/25/2013 11:56:51.000, 0.384
07/25/2013 11:57:00.800, 0.393
07/25/2013 11:57:10.600, 0.456
Run Code Online (Sandbox Code Playgroud)

谢谢!

go

12
推荐指数
2
解决办法
9400
查看次数

以固定步幅大小将字节读入 Go 缓冲区

我想在文件名给出的文件中一次读取和处理 1024 个字节。我不明白如何正确构建外循环,尤其是适应缓冲区包含少于 1024 字节的最终步幅

我尝试过的:

fs, _ := os.Open(filename)
defer fs.Close()
n := 1024 // 1kb
buff := make([]byte, n)
for {
    buff = make([]byte, n) // is this initialized correctly?
    n1, err := fs.Read(buff)
    if err != nil {
        if err == io.EOF {
            break
        }
        fmt.Println(err)
        break
    }
    fmt.Println("read n1 bytes...", n1)
    fmt.Println(buff)
}
Run Code Online (Sandbox Code Playgroud)

我看过以下资源:

go

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×4

file ×1

line ×1

parsing ×1

string ×1