Получить смещение / положение байтов, записанных в файл - PullRequest
0 голосов
/ 24 ноября 2018

Я записываю строку в файл и хочу получить смещение только что записанной строки.Вот код, пишущий файл:

package main

import (
    "os"
)

func main() {
    path := "test_file.txt"
    byteString := []byte("string to write")

    f, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, 0600)
    if err != nil {
        panic(err)
    }

    defer f.Close()

    if _, err = f.Write(byteString); err != nil {
        panic(err)
    }
}

Как получить смещение после написания строки?

1 Ответ

0 голосов
/ 24 ноября 2018

os.Write возвращает только длину записанных байтов.Если вы хотите смещение, вы можете:

  1. Вызвать os.Stat перед записью, а затем использовать os.WriteAt, чтобы записать смещение для конца файла, предоставленного структурой FileInfo.
  2. Позвоните os.Stat после записи и вычтите длину, записанную в файл, из нового размера.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...