zoukankan      html  css  js  c++  java
  • Golang理解-io注意事项

    io处理的选择方式

    io处理有很多方法,系统也为我们提供了几个包ioioutilbufio

    注册事项

    • 如果字符串大小不大,使用那个都行
    • 如果字符串过大,则需要使用bufio以及io包的一些方法

    ioutils.ReadString(f),会将f文件全部读取为一个字符串, 对内存开销大

    io.Copy(dest, src), 可以将src的内容流式copy到dest中

    ioutil.Discard 垃圾桶

    例如:

    package main
    
    import (
    	"fmt"
    	"io"
    	// "io/ioutil"
    	"net/http"
    	"os"
    )
    
    func main() {
    	if len(os.Args[1:]) < 1 {
    		fmt.Println("At least 1 params")
    		os.Exit(1)
    	}
    	for _, url := range os.Args[1:] {
    		res, err := http.Get(url)
    		if err != nil {
    			fmt.Println(err)
    			continue
    		}
    
    		f, _ := os.OpenFile("./a.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend)
    		defer f.Close()
    
    		_, err = io.Copy(f, res.Body)
    		if err != nil {
    			fmt.Println(err)
    			os.Exit(1)
    		}
    		// data, err := ioutil.ReadAll(res.Body)
    
    		defer res.Body.Close()
    	}
    }
    
    
  • 相关阅读:
    一些想说的事
    化学离子平衡作业偷懒神器
    solution
    SGU 刷题记
    INT128
    # 字典树的指针写法 1.
    CSP-S2 游记
    Tarjan 【整理】
    HGOI 20191106
    20191101
  • 原文地址:https://www.cnblogs.com/vinsent/p/11283368.html
Copyright © 2011-2022 走看看