转到:连接文件内容

我目前正在学习如何使用Go(或golang)进行开发,但遇到一个奇怪的问题:


我尝试创建一个在HTML文件中查找的脚本,以获取每个脚本的所有源 标签。该脚本的目标是合并所有检索到的文件。


所以,这就是故事了:就目前而言,我能够获取每个JavaScript文件的内容,但是...我无法将它们串联起来...


您可以在我的脚本下方看到:


//Open main file

mainFilePath := "/path/to/my/file.html"

mainFileDir := path.Dir(mainFilePath)+"/"


mainFileContent, err := ioutil.ReadFile(mainFilePath)


if err == nil {

    mainFileContent := string(mainFileContent)

    var finalFileContent bytes.Buffer


    //Start RegExp searching for JavaScript src

    scriptReg, _ := regexp.Compile("<script src=\"(.*)\">")

    scripts := scriptReg.FindAllStringSubmatch(mainFileContent,-1)


    //For each SRC found...

    for _, path := range scripts {

        //We open the corresponding file

        subFileContent, err := ioutil.ReadFile(mainFileDir+path[1])


        if err == nil {

            //And we add its content to the "final" variable

            fmt.Println(finalFileContent.Write(subFileContent))

        } else {

            fmt.Println(err)

        }

    }


    //Try to display the final result

    // fmt.Println(finalFileContent.String())

    fmt.Printf(">>> %#v", finalFileContent)

    fmt.Println("Y U NO WORKS? :'(")


} else {

    fmt.Println(err)

}

因此,每个fmt.Println(finalFileContent.Write(subFileContent))显示类似6161的东西,因此我假设Write()方法已正确执行。


但是fmt.Printf(">>> %#v", finalFileContent)什么也没显示。绝对不显示任何内容(甚至不会显示“ >>>”!)对于上面的注释行也是如此。


有趣的是,字符串“ YU NO WORK?:'(”正确显示了...


你知道为什么吗?您知道如何解决这个问题吗?


繁花不似锦
浏览 180回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go