Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。503件21GO言語を使い、比較的大きなファイル(~100M)を読み込むときに、エラーが発生していまい困っておりました。Webを参照にして、エラーが発生する箇所は自分で解決できましたが、なぜ違うfunctionを使うだけで、一方はエラーが出て、もう一方はスムーズにいくのかが理解できず、ここで質問させていただいています。お手数をおかけしますが、下記のプログラムで違いを説明していただけると勉強になり、大変ありがたいです。//Data02では完全に読み込まれていました。}以前よりscannerを使った方法(ここではReadLine01)を使っており、これまではエラーも発生せず正常に動いていました。上記でも示しましたが、本日、~100Mサイズのテキストファイルを読み込むときに、エラーが発生していました。具体的には、テキストファイルの内容は、数字+文字の羅列です。横に最大約60000文字ほどあり、縦には3000行ほどです。323.763772:287.144901)(申し訳ございません、実際にファイルをアップすればよいのですが、ここで、100Mのファイルをアップする方法がわかりませんでしたので、このような方法にしました。)このファイルを読み込むときに、ReadLine01方式では、上から十数行で結果が返ってきてしまっていました。len(Data01)が12などになります。)この問題のあるファイルは、別のscriptで作られたものです。不思議なことに、別に作成されたファイル(数字は違いますが、同じ内容)ではReadLine01でも完全に読むことができるものもありました。(このようなファイルを100個ほど作成して、完全に読み込めるものは10個程度でした。)webで解決方法を探していたところ、NewReaderSizeをみつけましたので、見よう見まねで、functionを作成(ReadLine02方式)してみたところ、上記の100ファイルすべてで、完全に読み込むことができるようになりました。自分の理解が足りていないだけだと思いますが、ReadLine01方式のbufio.NewScannerでは、情報をscannerに保持して、それをScanすることで一行ずつ読んでいくと理解しています。64*1024)では、ある程度大きなbufferを用意しておいて、reader.ReadLine()でやはり一行ずつ読んでいくと理解しています。これからだけですと、単純に原因は、Scannerには読み込むときの現在サイズが存在すると思ってしまいます。質問ですが、(1)scannerではファイルを読み込むときの限界サイズはあるのでしょうか?(2)それとも、byteに変換するところが上記の問題の原因なのでしょうか?自分の不勉強で、皆様の貴重なお時間を割いていただいて大変申し訳ありませんが、ご教授をお願いします。linux/amd64です。個の銅バッジ念のため、一応問題を起こすファイルに関しては、改行コードなど普段は見えないようになっているコードなどもNotepad++を使い一つづつ目で確認していました。原因となるようなものは見当たりませんでした。