package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func OpenFile(filename string) (*os.File, error) {
	fmt.Println("Opening file",filename)
	return os.Open(filename)
}

func CloseFile(filename *os.File) {
	fmt.Println("Closing file")
	filename.Close()
}

func GetNums(filename string) ([]int,error) {
	var nums []int
	file,err :=OpenFile("data.txt")
	defer CloseFile(file)
	if err != nil {
		return  nil,err
	}
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		number,err := strconv.ParseInt(scanner.Text(),10,0)
		if err != nil {
			return  nil,err
		}
		fmt.Println(number)
		nums = append(nums, int(number))
		}
	if scanner.Err() != nil {
		return nil,scanner.Err()
	}
	return nums,err
}


func main() {
	GetNums("data.txt")
}
