草庐IT

golang File WriteString 封面

coder 2023-06-28 原文

我想获取文件的increment id,代码如下:

// get increment id
func GetID() uint64 {

    appIdLock.Lock()
    defer appIdLock.Unlock()

    f, err := os.OpenFile(idPath, os.O_RDWR, 0666)
    if err != nil {
        return 0
    }
    defer f.Close()

    // Read
    bufferTemp := make([]byte, 16)
    bufferResult := make([]byte, 0)
    for {
        n, _ := f.Read(bufferTemp)
        if n > 0 {
            bufferResult = append(bufferResult, bufferTemp[:n]...)
        } else {
            break
        }
    }

    if len(bufferResult) == 0 {
        return 0
    }

    s := common.StringToUint64(string(bufferResult))
    s += 1

    // Write (how to cover?)
    f.WriteString(strconv.FormatUint(s, 10))

    return s
}

f.WriteString 函数被追加,例如,我的文件内容:123,运行 GetID() 我希望我的文件内容是:124,但结果是:123124

最佳答案

在不更改大部分代码的情况下,这里的解决方案可以正常工作并执行您想要执行的操作。没有 loops 或不止一个 byte slice 。

func GetID() uint64 {

    appIdLock.Lock()
    defer appIdLock.Unlock()

    // Added  + os.O_CREATE to create the file if it doesn't exist.
    f, err := os.OpenFile(idPath, os.O_RDWR + os.O_CREATE, 0666)
    if err != nil {
        fmt.Println(err)
        return 0
    }
    defer f.Close()

    // Know file content beforehand so I allocate a suitable bytes slice.
    fileStat, err := f.Stat()
    if err != nil {
        fmt.Println(err)
        return 0
    }


    buffer := make([]byte, fileStat.Size())

    _, err = f.Read(buffer)
    if err != nil {
        fmt.Println(err)
        return 0
    }

    s, _ := strconv.ParseUint(string(buffer), 10, 64)
    s += 1

    // The Magic is here ~ Writes bytes at 0 index of the file.
    _, err = f.WriteAt([]byte(strconv.FormatUint(s, 10)), 0)
    if err != nil {
        fmt.Println(err)
        return 0
    }

    return s
}


希望对您有所帮助!

关于golang File WriteString 封面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808576/

有关golang File WriteString 封面的更多相关文章

  1. javascript - 带封面的全屏背景,但专注于图像的一部分 - 2

    我想要一个div有一个覆盖整个div的背景图像,但是当浏览器窗口大小发生变化时,不要缩小太多,而是将焦点集中在图像上的一个点上。一个很好的例子是this,但是当您缩小窗口尺寸时,它会聚焦于黄色标志而不是图像的中间。这种东西有插件或者教程吗?我确信使用jquery和css图像Sprite我可以想出一些东西,但我宁愿使用经过验证的插件或技术,而不是一起破解一些东西。 最佳答案 好吧,我想这远没有我想象的那么难,但是我想要的行为可以简单地通过这样做来实现:{background:url('http://farm8.staticflickr

  2. javascript - 如何获得 mp3 文件的封面? - 2

    我有一个mp3文件,当我用windowsmediaplayer阅读它时,它有专辑的封面,所以我想知道是否有办法在javascript或jQuery中获取该封面 最佳答案 阅读此URL的更多信息:http://www.richardfarrar.com/embedding-album-art-in-mp3-files/您想要的是使用ID3header,其中存储了艺术家数据和更多信息。图像也可以存储在这些标题中。可能这也在您拥有的mp3文件中完成。类似https://github.com/aadsm/JavaScript-ID3-Rea

  3. javascript - 为什么 Graph API 在第一次登录时返回我相册的问号封面照片,而在后续登录时返回正确的图像? - 2

    我正在使用GraphAPI的FBjavascript驱动程序来允许用户从他们的Facebook帐户中选择照片。他们第一次连接时,系统会提示他们登录:FB.login(function(res){if(res.status=='connected'){auth=res.authResponse;//cacheauthresponsegetAlbums();}});如果成功,我缓存返回的auth对象并立即获取用户的相册:functiongetAlbums(){FB.api('/me/albums',function(res){albums=res.data;});}使用返回的对象,我遍历相

  4. go - 在golang中获取/设置mp3文件的封面 - 2

    我有一个mp3文件,当我将它加载到媒体播放器中时,媒体播放器会显示专辑的封面。我假设封面在文件的元数据中,所以我想知道是否有办法在golang中找到该封面。如何为mp3文件设置封面? 最佳答案 此属性的名称是ID3.您可以使用库dhowden/tag做这个。m,err:=tag.ReadFrom(f)iferr!=nil{log.Fatal(err)}log.Print(m.Format())//Thedetectedformat.log.Print(m.Title())//Thetitleofthetrack(seeMetadat

  5. xml - 将封面插入 XSL :FO template - 2

    我处理过这些文档,我需要编辑现有代码以映射数据库中的字段。XSL文档已经有了模板和区域。我的目标是在模板的任何边距出现之前添加一个封面。代码如下所示:然后页面开始为紧随其后的是任何其他地区等。我查看了如何插入一些封面,但尝试时我总是遇到错误,我使用的只是Notepad++,每次测试时都会渲染pdf,所以这变得非常耗时过程。我决定只用一张图片作为封面以节省时间。我知道这是一个FOP引擎1.0。 最佳答案 这里有一个简单的例子可以帮助您完成这个过程:IamaCoverPage,formatmehoweveryouwish!Iamther

  6. php - facebook php - 如何获取专辑封面照片 - 2

    我需要使用PHPSDK(Facebook)获取专辑封面照片。我尝试:https://graph.facebook.com/[ALBUM_ID]/picture?type=album,但我得到一个默认图像...例如...获取用户https://graph.facebook的个人资料图片.com/[USER_ID]/picture?type=square谁能告诉我获取相册封面照片的正确方法。谢谢。 最佳答案 您可以只使用FQL,这是我的首选方法并且提供了很大的灵active。此代码示例应该是您所需要的:$album_id='646415

  7. php - 如何从 MP3 ID3 标签中提取专辑封面? - 2

    我可以使用php成功地从我的mp3应用程序中获取mp3ID3标签。我留下了一个巨大的BLOB。我敢肯定这很简单,但我只需要在正确的方向上提供一点帮助。我想要结束的是(BLOBDATACORRECTED):$media_year=implode($ThisFileInfo['comments_html']['year']);$media_genre=implode($ThisFileInfo['comments_html']['genre']);$media_jpg=[BLOBDATA];(我知道这对编程没有意义,但你明白了。前两行对我来说很好,但我不知道如何从ID3标签中获取BLOBD

  8. c# - 获取专辑封面,如 JPEG、PNG 等 - 2

    谁能告诉我是否有任何简单的WebAPI可以将专辑封面作为图像返回,就像GoogleStaticMapAPI(GoogleStaticMapAPI一样?我听说过Amazon和Last.fm的API,但是不能'找不到任何代码(除了PHP/Perl/Ruby等网络语言)。此外,它们是RESTAPI。任何帮助将不胜感激。有简单的URL(GET)查询还是只有REST/XML方法? 最佳答案 用手做应该不难。Album.getInfo的last.fmapi规范方法非常简单,而且它是一个RESTapi的事实使其更加简单。只需从服务器获取xml响应

  9. 2022年全国图书参考联盟读秀5.0/4.0/3.0/2.0/1.0书库网盘数据索引在线搜索查询系统搭建教程,可以实现ISBN/SS号/书封面链接/书名/作者/出版社…等信息一键搜索查询 - 2

    书库搜索查询系统搭建的【目的】截至目前,2022年读秀书库包含5.0最新及4.0/3.0/2.0/1.0等往期版本,书库总量共500T,除了近两年出版的新书外,在此之前出版的所有书只要有电子版的基本都在该书库内,是非常强大的。虽然网盘群组存有这么多书库,但是书库中的原始文件命名都是SS书号,如何根据SS书号查询到书名、书作者、书页码、ISBN……等必要信息呢?该系统的搭建就在于解决这个查询问题,以方便快速的将文件名、文件路径、以及书名、作者、ISBN、SS书号、书页码、书年份、书出版社等信息全部关联起来,实现书信息一键互查!书库搜索查询系统搭建的【申明】该查询系统仅提供电子版书籍信息的查询用,

  10. iphone - pdf列表的封面流效果 - 2

    我想知道我们如何为pdf列表实现封面流效果,双击时,它应该打开相应的pdf。我真的很困惑,请帮帮我提前致谢 最佳答案 在openFlowView.m文件中搜索此方法-(void)awakeFromNib{[selfsetUpInitialState];}NowwhenyoufindthisreplacethismethodbybeloworaddlinesoftapGestureRecognizer.-(void)awakeFromNib{[selfsetUpInitialState];UITapGestureRecognizer*

随机推荐