Golang进阶实战之IO操作

文件读写

12345678910111213141516171819202122232425262728293031323334
func () {

    fileInfo, err := os.Stat("aaa.txt")    if err != nil {        fmt.Println("error")        return    }    fmt.Println(fileInfo)    fmt.Println(fileInfo.Name())    fmt.Println(fileInfo.Size())    fmt.Println(fileInfo.IsDir())    // 文件权限    fmt.Println(fileInfo.Mode())    fmt.Println(fileInfo.ModTime())

    // 路径    fileName1 := "aaa.txt"    fmt.Println(filepath.Abs(fileName1))    fmt.Println(filepath.IsAbs(fileName1))

    // 创建目录    err = os.MkdirAll("aa", os.ModePerm)    if err != nil {        fmt.Println("error")        return    }    // 创建Create 打开Open OpenFile 关闭Close 删除Remove RemoveAll    file, err2 := os.Create("fileName2.txt")    if err2 != nil {        fmt.Println("error")        return    }    fmt.Println(file)}

数据读写

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
大专栏  Golang进阶实战之IO操作"code">

func () {    // io    // 读取数据: Read    file, err := os.Open("aaa.txt")    if err != nil {        return    }    defer file.Close()

    bs := make([]byte, 4, 4)    //n, err := file.Read(bs)    //println(err)    //println(n)    //println(string(bs))    //    //n, err = file.Read(bs)    //println(err)    //println(n)    //println(string(bs))    //    //n, err = file.Read(bs)    //println(err)    //println(n)    //println(string(bs))

    n := -1    for {        n, err = file.Read(bs)        if n == 0 || err == io.EOF {            break        }        fmt.Println(string(bs[:n]))    }

    // 写入数据: Write    file2, err2 := os.OpenFile("bbb.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, os.ModePerm)    if err2 != nil {        return    }    defer file2.Close()    bs2 := []byte{44,55,66}    n2, err4 := file2.Write(bs2)    if err4 != nil {        return    }    fmt.Println(n2)}

io相关

123456789101112131415
func () {    // copy    // 可以用Read和Write利用切片实现复制文件    // io.Copy()    // ioutil.ReadFile() ioutil.WriteFile()

    // Seek接口设置读写文件偏移量

    // 断点续传 ;利用临时文件记录传输了多少数据

    // bufio 添加缓冲区 提高io效率    // buifo.NewReader(file)    // Flush() 刷新缓冲区

}

原文地址:https://www.cnblogs.com/lijianming180/p/12433448.html

时间: 2024-08-30 02:15:37

Golang进阶实战之IO操作的相关文章

Python进阶三部曲之IO操作

IO编程 文件读写 打开文件 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) 具体需要查看API,这里只介绍几个常用的方法. open函数的文件名是必传参数,返回一个文件对象 #打开一个文件. f = open('read.txt', 'r') open函数的mode参数: 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '

Golang字符串处理以及文件操作

GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也是有过之而无不及,甚至可以说远远的甩python几条街.学过python基础或是shell的童鞋应该知道我们在定义一个变量的时候是不需要指定其所属数据类型的,直接让其等于一个变量即可,他们的解释器会自动识别你定义的是个整数,浮点数,字符串,还是数组或是函数.而Golang在定义每个变量的时候都被指定

Golang中的字节序列化操作

在写网络程序的时候,我们经常需要将结构体或者整数等数据类型序列化成二进制的buffer串.或者从一个buffer中解析出来一个结构体出来,最典型的就是在协议的header部分表征head length 或者body length在拼包和拆包的过程中,需要按照规定的整数类型进行解析,且涉及到大小端序的问题. 1.C中是怎么操作的 在C中我们最简单的方法是用memcpy来一个整形数或者结构体等其他类型复制到一块内存中,然后在强转回需要的类型.如:     // produce     int a =

MySQL的进阶实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/69857949 出自[zejian的博客] 关联文章: MySQL的初次见面礼基础实战篇 MySQL的进阶实战篇 本篇上一篇博文MySQL的初次见面礼基础实战篇的延续,是mysql的进阶内容的记录,本篇主要知识点如下: 进阶实战篇 进阶实战篇 mysql视图机制 什么是视图 视图创建与使用 视图的本质 高效索引 使用索引的理由 索引

scala-04For与Function进阶实战、Lazy的使用

For与Function进阶实战.Lazy的使用 一.for循环的进阶实战 Def main=(args:Array[String]):Unit{ For(i<- 1 to 3;j<- 3 to 8) Println((100*i+j)+" ") 也可在for循环中加入条件表达式: For(i<- 1 to 3;j<- 3 to 8  if i!=j) Println((100*i+j)+" ") } 定义函数的时候一般函数都有值,函数可以作为函数的参数去赋值

JAVASE02-Unit08: 文本数据IO操作 、 异常处理

Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob

006 异步IO操作

# 异步IO操作 CreateFile 使用 VS2015 新建win32 控制台应用程序 WindowsFileDemo win32控制台写窗口程序 需要加入头文件 #include <fileAPI.h> 就可以来使用CreateFile 分别有 CreateFileA  CreateFileW 窄字节 宽字节 1 HANDLE WINAPI CreateFile( 2 _In_ LPCTSTR lpFileName, 3 _In_ DWORD dwDesiredAccess, 4 _In

Linq实战 之 DataSet操作详解

Linq实战 之 DataSet操作详解  一:linq to Ado.Net 1. linq为什么要扩展ado.net,原因在于给既有代码增加福利.FCL中在ado.net上扩展了一些方法. 简单一点的说: 就是在DatTable 和 DataRow 上面做了一些扩展. 二:扩展方法一览 1. AsEnumerable 2. Field 三:扩展类一览 DataTableExtensions 扩展 => public static EnumerableRowCollection<DataRo

【UNIX环境高级编程】文件 IO 操作 - 基础函数 open close creat lseek write read 详解

博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) open 函数简介 open 函数解析 : -- 函数定义 : #include <fcntl.h> int open(const char *path, int oflag, ...); -- 函数作用 : 打开或者创建一个文件; -- 返回值 : 打开文件成功, 返回文件描述符; 如果失败, 返回