博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang学习的点点滴滴:读写文件(面向对象版)
阅读量:6804 次
发布时间:2019-06-26

本文共 1270 字,大约阅读时间需要 4 分钟。

  hot3.png

package main import (	"fmt"	"bufio"	"io"	"os"	"flag"	"strconv")// 定义一个结构体type ReadWrite struct {	In *string	Out *string}// 定义初始化方法func (rw *ReadWrite) Init() {	rw.In = flag.String("in", "in", "in")	rw.Out = flag.String("out", "out", "out")	flag.Parse()}// 定义读文件的方法func (rw *ReadWrite) Read() (result []int, err error) {	file, err1 := os.Open(*(rw.In))	if nil != err1 {		panic("error to open file...")	}	defer file.Close()	br := bufio.NewReader(file)	result = make([]int, 0)	for {		line, isPrefix, err2 := br.ReadLine()		if nil != err2 {			if io.EOF == err2 {				fmt.Println("finish read ...")			}			break		}		if isPrefix {			return		}		str := string(line)		value, err3 := strconv.Atoi(str)		if nil != err3 {			err = err3			return		}		result = append(result, value)	}	return}// 定义写文件的方法func (rw *ReadWrite) Write(value []int) {	file, err := os.Create(*(rw.Out))	if nil != err {		panic("error to create file...")	}	defer file.Close()	for index, res := range value {		str := strconv.Itoa(res*index)		file.WriteString(str + "\n")	}}func main() {	defer func() {			if ex:=recover();ex!=nil {				fmt.Println(ex)			}		}()	rw := new(ReadWrite)	rw.Init()	value, err := rw.Read()		if nil != err {		panic("error.....")	}	rw.Write(value)}

转载于:https://my.oschina.net/qibin/blog/323341

你可能感兴趣的文章
Python 两个list合并成一个字典
查看>>
WCF与Web API 区别(应用场景)
查看>>
jQuery常用语法总结笔记
查看>>
JavaScript中的this指向
查看>>
24.访问控制
查看>>
Python - - 面向对象 - - 初始面向对象
查看>>
傻瓜式游戏工具引擎
查看>>
ios安全如何非法窃取用户iTunes Store信息的原理
查看>>
如何定制属于自己的个性化win7主题
查看>>
[转载] ffmpeg 基本数据结构和对象: AVPacket、AVPicture、AVFrame
查看>>
配置阿里yum源
查看>>
Spring MVC基础了解
查看>>
金九银十中,看看这31道Android面试题
查看>>
static 语句块
查看>>
函数节流和函数防抖
查看>>
51CTO专访:谈谈SOC安全管理平台
查看>>
使用USB直接方式解决ESXi识别加密狗的问题
查看>>
创新团队中常见的几种“怪人”
查看>>
FreeBSD从零开始---Web服务器搭建(二)
查看>>
磁盘空间未释放异常案例
查看>>