Golang读取文件内容

可以一次性读取,也可以按行读取,也可以按字节读取,一般小文件直接一次性读取,当文件内容太大,内存不足,建议逐行读取处理。

package main

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
)

func main() {
	//1、一次性读取文件内容,还有一个 ReadAll的函数,也能读取
	data, err := ioutil.ReadFile("./util/file.go")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(data))

	//2、逐行读取
	file, err := os.Open("./util/file.go")   //打开
	if err != nil { fmt.Println(err); return  }
	defer file.Close() //关闭

	line := bufio.NewReader(file)
	for {
		content, _, err := line.ReadLine()
		if err == io.EOF { break }
		fmt.Println(string(content))
	}

	//3、按照字节数读取
	file,err= os.Open("./util/file.go")
	if err!=nil{ fmt.Println(err); return }
	defer file.Close()
	//读取数据
	bs := make([] byte,4)
	for {
		_, err = file.Read(bs)
		if err == io.EOF { break}
		fmt.Print(string(bs))
	}
}

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang中,可以通过使用`net/http`包来读取前端传输的文件内容。 首先,服务端需要设置一个HTTP路由处理函数来接收前端传输的文件。这可以通过使用`http.HandleFunc()`函数来实现。在路由处理函数中,可以使用`request.ParseMultipartForm()`函数来解析前端发送的multipart/form-data类型的表单数据。 示例代码如下所示: ```go package main import ( "net/http" "fmt" ) func fileHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(32 << 20) // 设置最大文件大小为32MB if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } file, _, err := r.FormFile("file") // 获取文件内容 if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } defer file.Close() // 处理文件内容,例如保存至本地或上传至云端 // ... fmt.Fprint(w, "文件上传成功") } func main() { http.HandleFunc("/upload", fileHandler) http.ListenAndServe(":8080", nil) } ``` 在上述代码中,`fileHandler`函数用于处理前端传输的文件数据。通过调用`r.FormFile("file")`可以获取到文件的内容。接下来,你可以根据具体的需求对文件内容进行处理,例如保存至本地或上传至云端。 最后,通过调用`http.HandleFunc()`函数设置服务器的路由处理函数,并使用`http.ListenAndServe()`函数监听指定的端口,等待客户端的请求。 这样,当前端向服务端发送文件内容时,服务端可以通过上述代码读取并处理文件内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值