首页 > 其他分享 >文件读写io/bufio/os/ioutil

文件读写io/bufio/os/ioutil

时间:2022-12-17 22:33:50浏览次数:46  
标签:ioutil func err io log bufio error os string

os

package main

import (
    "log"
    "os"
)

func main() {
    // 1.文件的基础操作,create/open/close/chmod -> go/io库
    f, err := os.Create("create.txt")
    if err != nil {
        log.Fatalf("get file info error: %s\n", err.Error())
    }
    // 文件状态信息 file stats
    fileInfo, err := f.Stat()
    if err != nil {
        log.Fatalf("create file error: %s\n", err.Error())
    }
    log.Printf("File Name is %s\n", fileInfo.Name())
    log.Printf("File Permissions is %s\n", fileInfo.Mode())
    log.Printf("File ModTime is %s\n", fileInfo.ModTime())

    // 关闭文件 close
    err = f.Close()
    if err != nil {
        log.Fatalf("close file failed err=%s\n", err)
    }
    // 删除文件 delete
    err = os.Remove("create.txt")
    if err != nil {
        log.Fatalf("remove file failed err=%s\n", err)
    }
}

ioutil

func ReadAll(r io.Reader) ([]byte, error)

func ReadFile(filename string) ([]byte, error)

func WriteFile(filename string, data []byte, perm os.FileMode) error

func ReadDir(dirname string) ([]os.FileInfo, error)

func TempFile(dir, pattern string) (f *os.File, err error)

func TempDir(dir, pattern string) (name string, err error)

bufio

f, err := os.Open("connect.go")
defer f.Close()
if err != nil {
  panic(err)
}
//func NewReader(rd io.Reader) *Reader
reader := bufio.NewReader(f)
totLine := 0
for {
  //func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error)
  content, isPrefix, err := reader.ReadLine()
  fmt.Println(string(content), isPrefix, err)
  //当单行的内容超过缓冲区时,isPrefix会被置为true;否则为false;
  if !isPrefix {
    totLine++
  }
  if err == io.EOF {
    fmt.Println("一共有", totLine, "行内容")
    break
  }
}
path := "test.txt"
f, err := os.Create(path)
defer f.Close()
if err != nil {
  panic(err)
}
//func NewWriter(w io.Writer) *Writer
bufferWrite := bufio.NewWriter(f)
if err != nil {
  panic(err)
}
demo := "1234567890"
for _, v := range demo {
  // 将数据写入缓冲区
  // func (b *Writer) WriteString(s string) (int, error)
  bufferWrite.WriteString(string(v))
}
data, _ := ioutil.ReadFile(path)
fmt.Println(string(data))   // 输出空的内容
// 将缓冲区的数据写入文件
// func (b *Writer) Flush() error
bufferWrite.Flush()
data, _ = ioutil.ReadFile(path)
fmt.Println(string(data))   // 输出:1234567890

 

标签:ioutil,func,err,io,log,bufio,error,os,string
From: https://www.cnblogs.com/topass123/p/16989746.html

相关文章

  • C++学习---cstdio的源码学习分析07-刷新文件流函数fflush
    cstdio中的文件访问函数stdio.h中定义了一系列文件访问函数(fopen,fclose,fflush,freopen,setbuf,setvbuf),接下来我们一起来分析一下fflush对应的源码实现。fopen:打开文件fclose:......
  • 题解 AGC059C【Guessing Permutation for as Long as Possible】
    problem小明有一个隐藏的排列\(p\),小红想要猜出来。现在允许小红提问,每次提问的形式是\(a_i\)和\(b_i\),然后小明会告诉小红谁大谁小。小红是个老实的人,她的询问顺序......
  • spring webflux项目集成后台管理系统的用户登录,支持用户session
    配置pom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
  • Java Database Operation
    DatabaseOperation(数据库操作)DatabaseOverview数据库是以某种文件结构存储的一些列信息表可以通过某些语句访问这些表、选择表中的行或者列、对表进行排序、以及根据......
  • 计组学习05——Introduction to Assembly Language
    感觉可算到了真正计组重要的部分(毕竟我是因为挖操作系统的时候感觉计组知识严重不足来补的计组。为了看清楚问题和ppt,倍速减慢截取字幕消失的那几帧....然后还有一些解......
  • S7-1200作为的IO控制器和智能IO设备的应用
    PLC_1是IO控制器,  PLC_2是智能io设备; 情况1:S7-1200智能设备在相同项目下组态;只需要设置智能IO设备即可;        情况2:S7-1200智能设备在......
  • 【Python】爬虫笔记-ConnectionResetError(10054)
    0x01在对网站图片进行批量爬取的过程中遇到了一个典型问题:requests.exceptions.ConnectionError:('Connectionaborted.',ConnectionResetError(10054,'Anexisting......
  • dremio CommandPool简单说明
    CommandPool实际上是一个线程池的处理,官方实现了好几种线程池主要作用限制并行请求以以及job的运行定义优先级任务特点任务基于优先级以及提交时间进行自然排序当线程空闲......
  • Next.js 开发商 Vercel 正式推出 Edge Functions
    Next.js开发商Vercel正式推出EdgeFunctions来源:OSCHINA编辑: 白开水不加糖2022-12-1707:49:24 0Next.js框架背后的开发商Vercel 宣布推出Edg......
  • requestAnimationFrame
    window.requestAnimationFrame()用浏览器刷新频率(通常是每秒60/75次)执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数......