TransWikia.com

Чтение файла и запись из буфера в массив

Stack Overflow на русском Asked by Jack Smith on September 23, 2020

У меня есть test.txt в нем 10 разных строк. Мне нужно прочитать и записать в массив построчно.

Код:

package main

import (
    "fmt"
    "io/ioutil"
    "strings"
)

func main() {
    bs, err := ioutil.ReadFile("test.txt")
    if err != nil {
        return
    }
    str := string(bs)
    fmt.Println(str)
    strs := strings.Split(str, "rn")
    fmt.Println(strs) // выводится последняя строка файла + ]
}

Вывод:

0.0.0.0:80
110.172.167.34:8080
110.5.98.234:3128
110.8.253.100:80
113.6.255.107:80
114.30.47.10:80
114.30.79.62:8080
115.124.67.54:80
116.68.172.35:8080
116.84.187.131:3128
117.102.93.138:80
117.102.95.114:3128
117.35.118.2:3128
118.175.14.108:3128
118.220.175.207:80
118.46.147.201:3128
118.96.102.181:3128
118.96.110.41:3128
118.96.121.70:3128
118.96.148.40:3128
118.96.24.227:8080
118.96.87.107:3128

[0.0.0.0:80 110.172.167.34:8080 110.5.98.234:3128 110.8.253.100:80 113.6.255.107:80 114.30.47.10:80 114.30.79.62:8080 11
5.124.67.54:80 116.68.172.35:8080 116.84.187.131:3128 117.102.93.138:80 117.102.95.114:3128 117.35.118.2:3128 118.175.14
.108:3128 118.220.175.207:80 118.46.147.201:3128 118.96.102.181:3128 118.96.110.41:3128 118.96.121.70:3128 118.96.148.40
:3128 118.96.24.227:8080 118.96.87.107:3128 ]

Добавил код для выбора прокси сервера:

str := string(bs)
strs := strings.Split(str, "rn")
bestProxyServer := randInt(len(strs))
fmt.Print(strs)

proxyUrl, err := url.Parse(str[bestProxyServer])
httpClient := &http.Client { Transport: &http.Transport { Proxy: http.ProxyURL(proxyUrl) } }
response, err := httpClient.Get(host)

Из среза ничего не выбирается, остается мой прежний ip адрес.

Вывод:

[110.5.98.234:3128 110.8.253.100:80 113.6.255.107:80 114.30.47.10:80 114.30.79.62:8080 115.124.67.54:80 116.68.172.35:80
80 116.84.187.131:3128]map[Date:[Mon, 06 Nov 2017 15:59:37 GMT] Content-Type:[text/html; charset=UTF-8] Set-Cookie:[PHPS
ESSID=tknp6t8h5m6rmptdb8cvef1so2; path=/ IP%5B1509983977%5D=**92.53.213.181**; expires=Sun, 04-Feb-2018 15:59:37 GMT; Max-Ag
e=7776000; path=/; domain=.2ip.ru] Server:[nginx] Connection:[keep-alive] Expires:[Thu, 19 Nov 1981 08:52:00 GMT] Cache-
Control:[no-store, no-cache, must-revalidate] Pragma:[no-cache]]

One Answer

Если вы уверены, что файл маленький, то дальше вам просто нужно разделить строку по n:

strs := strings.Split(str, "n")

Если файл большой, то лучше использовать bufio.Scanner. Пример есть в документации.

Answered by Ainar-G on September 23, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP