Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 获取文件中最后一行的下一行_String_Go - Fatal编程技术网

String 获取文件中最后一行的下一行

String 获取文件中最后一行的下一行,string,go,String,Go,我找到了一种方法来读取文件中的最后一行,但我的文件中的最后一行是空的,我需要读取最后一行的下一行,我不知道怎么做,请帮助一下 func ll(z string) string { f, err := os.Open(z) if err != nil { log.Fatal(err) } bf := bufio.NewReader(f) for { switch line, err := bf.ReadString('\n'

我找到了一种方法来读取文件中的最后一行,但我的文件中的最后一行是空的,我需要读取最后一行的下一行,我不知道怎么做,请帮助一下

func ll(z string) string {

    f, err := os.Open(z)
    if err != nil {
        log.Fatal(err)
    }
    bf := bufio.NewReader(f)
    for {
        switch line, err := bf.ReadString('\n'); err {
        case nil:
        // valid line, echo it.  note that line contains trailing \n.
        fmt.Println(line)

        case io.EOF:
            if line > "" {
                // last line of file missing \n, but still valid
                    fmt.Println(line, "in func")
            }
            return  line
        default:
            log.Fatal(err)
        }
    }
}

每次迭代只需保存当前行,这样当遇到最后一行时,就可以返回
prev\u line

func next_to_last(z string) string {
    f, err := os.Open(z)
    if err != nil {
        log.Fatal(err)
    }
    bf := bufio.NewReader(f)
    prev_line := ""

    for {
        switch line, err := bf.ReadString('\n'); err {

        case nil:
        // valid line, echo it.  note that line contains trailing \n.
        fmt.Println(line)
        prev_line = line // Save line as previous

        case io.EOF:
            if line > "" {
                // last line of file missing \n, but still valid
                    fmt.Println(line, "in func")
            }
            return  prev_line // Return previous line

        default:
            log.Fatal(err)
        }
    }
}

每次迭代只需保存当前行,这样当遇到最后一行时,就可以返回
prev\u line

func next_to_last(z string) string {
    f, err := os.Open(z)
    if err != nil {
        log.Fatal(err)
    }
    bf := bufio.NewReader(f)
    prev_line := ""

    for {
        switch line, err := bf.ReadString('\n'); err {

        case nil:
        // valid line, echo it.  note that line contains trailing \n.
        fmt.Println(line)
        prev_line = line // Save line as previous

        case io.EOF:
            if line > "" {
                // last line of file missing \n, but still valid
                    fmt.Println(line, "in func")
            }
            return  prev_line // Return previous line

        default:
            log.Fatal(err)
        }
    }
}

您可以将每一行放入一个切片,然后打印[len(slice)-2]您可以将每一行放入一个切片,然后打印[len(slice)-2]