के साथ एक बड़ी फ़ाइल से अंतिम पंक्तियों को कैसे पढ़ा जाए, मैं बड़ी लॉग फ़ाइल से आखिरी दो पंक्तियों को पूरी तरह मेमोरी में लोड किए बिना कैसे पढ़ सकता हूं?प्रत्येक 10 सेकंड
मैं इसे हर 10 सेकेंड (एक जीत मशीन पर) को पढ़ने की जरूरत है ... और मैं पिछले लाइनों को पढ़ने का प्रयास अटक कर रहा हूँ ..
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)
}
लॉग फ़ाइल है कुछ की तरह:
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
धन्यवाद!
धन्यवाद @Joshua यह मेरे – Goku
करने के लिए बेहतर दृष्टिकोण था मैं करूंगा file.Seek (62, 2) से इसके बजाय अंत और फिर बस फ़ाइल। आरई वर्तमान स्थिति से विज्ञापन। फ़ाइल.देखो, मुझे संदेह है, तो बहुत सस्ता है ओएस.स्टैट। – alex
@ जोशुआ - एक ऐसी रेखा को पढ़ने के बारे में जिसे हम बाइट आकार से अवगत नहीं हैं? – Mir