golang os 包简单使用

天空蓝雨 · 2020-07-17 11:32:50 · 1317 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2020-07-17 11:32:50 的文章,其中的信息可能已经有所发展或是发生改变。

一个简单的例子,使用 file.Read(data) 读取文件,并且通过个http 发送给客户端。

package main 
/* os 包练习 */
/* 这里也遇到一个问题就是,subline每次执行前最好保存一下刚修改的文件,否则 可能会不符合预期结果*/
/* regexp 使用參考:https://wizardforcel.gitbooks.io/golang-stdlib-ref/107.html#example-Regexp-FindStringSubmatch */
/* os 包使用参考: https://wizardforcel.gitbooks.io/golang-stdlib-ref/100.html */
import (
    . "fmt"
    "os"
    "net/http"
    "regexp"
)

/* 大部分 系统处理的功能 函数 */

/* 简单读取文件 */
func read_file(str string) (file_str string){

    file, _ := os.Open("C:/Users/ywx741860/Desktop/go练习/"+str+ ".go") // For read access.

    data := make([]byte, 100) // make([] byte, 100)
    // var file_str string
    defer file.Close() // 关闭文件对象
    for{
    _, err := file.Read(data)  //Read 接收一个 字节切片类型, 读取填满传入的切片参数,返回 读取字节数量, 错误
    if err != nil {
        Printf("读取文件发生错误")
        Printf("%v", err)
        break
        }

        file_str += Sprintf("%s", string(data))
    }
    return file_str
}


/* 读取文件并发送到接口的返回数据 */
func simple_server(){
    http.HandleFunc("/file", func(w http.ResponseWriter, r *http.Request){
        url := r.URL
        url_str := Sprintf("%s", url)
        regx := regexp.MustCompile(".*?[?]file=(?P<file_name>.*)")
        file_name := regx.FindStringSubmatch(url_str)  // Find(All)?(String)?(Submatch)?(Index)?  这样记,参见下面的说明 
        Println(file_name)
        Fprintf(w, "%s", read_file(file_name[1]))
        })
    http.ListenAndServe(":8003", nil)
}

效果:


通过参数可以查看具体的文件了

/* os 函数的简单练习 /
/
os 包大致分为 系统和文件 两个大的操作部分 */
操作文件:
https://learnku.com/docs/build-web-application-with-golang/075-file-operation/3199


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:天空蓝雨

查看原文:golang os 包简单使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1317 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传