file

package
v0.0.0-...-9db4afe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2018 License: Apache-2.0 Imports: 11 Imported by: 7

README

读取一个文件

可以按照时间匹配文件(%Y:年 %M:月 %D:日期 %h:小时 %m:分钟)
EndStop确认当文件读取到最后一行时是退出还是循环等待
Seek制定开始读取时的偏移量[byte],默认从当前行的行首开始
TODO:增加读取的起始位置

使用例子:

package main

import (
    "github.com/luopengift/golibs/file"
    "fmt"
)

func main() {
    f := file.NewTail("test-%Y-%M-%D.log")
    f.ReadLine()
    f.EndStop(true) //读完文件推出
    f.Seek(0)    //设置offset值[byte]
    for v := range f.NextLine() {
        fmt.Println(*v) //NextLine返回行内容的地址
    }
}

解析配置文件

为避免歧义,只能使用"#"作为注释

package main

import (
    "github.com/luopengift/golibs/file"
    "fmt"
)

func main() {
    test := &TestConfig{}
    config := NewConfig("./config.json")
    config.Parse(test)
    fmt.Println(fmt.Sprintf("%+v",test))
    fmt.Println(config)
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// TimeRule time
	TimeRule *TimeRuler
	// NullRule null
	NullRule *NullRuler
	//Map 时间通配符,用于正则表达式替换
	Map = map[string]string{
		"%Y": "2006",
		"%M": "01",
		"%D": "02",
		"%h": "15",
		"%m": "04",
		"%s": "05",
	}
)

Functions

This section is empty.

Types

type File

type File struct {
	// contains filtered or unexported fields
}

File file

func NewFile

func NewFile(name string, model int) *File

NewFile new file

func (*File) BaseName

func (f *File) BaseName() string

BaseName 文件名

func (*File) CeilingOffsetByLF

func (f *File) CeilingOffsetByLF(offset int64) (int64, error)

CeilingOffsetByLF 根据offset值,往后计算该行的起始偏移量

func (*File) Close

func (f *File) Close() error

Close close

func (*File) Dir

func (f *File) Dir() string

Dir dir

func (*File) Fd

func (f *File) Fd() *os.File

Fd fd

func (*File) IsSameFile

func (f *File) IsSameFile(file string) (bool, error)

IsSameFile IsSameFile

func (*File) Name

func (f *File) Name() string

Name 文件名称

func (*File) Offset

func (f *File) Offset() int64

Offset offset

func (*File) Open

func (f *File) Open() (err error)

Open open

func (*File) Read

func (f *File) Read(p []byte) (int, error)

func (*File) ReadAll

func (f *File) ReadAll() (file []byte, err error)

ReadAll read all

func (*File) ReadOneByte

func (f *File) ReadOneByte(offset int64) ([]byte, error)

ReadOneByte read one byte

func (*File) Seek

func (f *File) Seek(offset int64) error

Seek seek os.SEEK_CUR int = 1 // seek relative to the current offset os.SEEK_SET int = 0 // seek relative to the origin of the file os.SEEK_END int = 2 // seek relative to the end

func (*File) Size

func (f *File) Size() int64

Size size

func (*File) TrancateOffsetByLF

func (f *File) TrancateOffsetByLF(offset int64) (int64, error)

TrancateOffsetByLF 根据offset值,往前计算该行的起始偏移量

func (*File) Write

func (f *File) Write(p []byte) (int, error)

type Handler

type Handler interface {
	Handle(string) string
}

Handler 处理接口

type NullRuler

type NullRuler struct{}

NullRuler null

func (*NullRuler) Handle

func (n *NullRuler) Handle(str string) string

Handle handler

type Tail

type Tail struct {
	*File

	Handler // file name handle interface
	// contains filtered or unexported fields
}

Tail tail

func NewTail

func NewTail(cname string, handler Handler) *Tail

NewTail new tail

func (*Tail) Close

func (t *Tail) Close() error

Close close

func (*Tail) EndStop

func (t *Tail) EndStop(b bool)

EndStop end stop

func (*Tail) NextLine

func (t *Tail) NextLine() chan []byte

NextLine nextline

func (*Tail) ReOpen

func (t *Tail) ReOpen() error

ReOpen re open

func (*Tail) Read

func (t *Tail) Read(p []byte) (int, error)

Read read

func (*Tail) ReadLine

func (t *Tail) ReadLine()

ReadLine read line

func (*Tail) Stop

func (t *Tail) Stop()

Stop stop

type TimeRuler

type TimeRuler struct{}

TimeRuler time

func (*TimeRuler) Handle

func (t *TimeRuler) Handle(str string) string

Handle handler eg:"test-%Y%M%D.log" ->"test-20170203.log" eg:"test-%Y-%M-%D.log" ->"test-2017-02-03.log"

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳