如果最终还是要读取整个文件,则使用扫描仪会有些麻烦。我将阅读整个文件,然后将其拆分为引号列表:
package mainimport ( "bytes" "io/ioutil" "log" "math/rand" "os")func main() { // Slurp file. contents, err := ioutil.ReadFile("/Users/bryan/Dropbox/quotes_file.txt") if err != nil { log.Fatal(err) } // Split the quotes separator := []byte("$$") // Convert string to []byte quotes := bytes.Split(contents, separator) // Select three random quotes and write them to stdout for i := 0; i < 3; i++ { n := rand.Intn(len(quotes)) quote := quotes[n] os.Stdout.Write(quote) os.Stdout.Write([]byte{'n'}) // new line, if necessary }}
如果 在 读取文件 之前 选择了三个引号 , 则使用扫描仪将很有意义。那么您可以在到达最后一个报价后停止阅读。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)