从标准输入读取大量数据

2024-01-09

如何从 Golang 的 stdin 读取大量数据?目前我的所有读取都停止在 4095 字节。我已经尝试了很多东西,但我当前的代码如下所示:

var stdinReader = bufio.NewReader(os.stdin)

// Input reads from stdin while echoing back.
func Input(prompt string) []byte {
    var data []byte

    // Output prompt.
    fmt.Print(prompt)

    // Read until newline.
    for {
        bytes, isPrefix, _ := stdinReader.ReadLine()
        data = append(data, bytes...)

        if !isPrefix {
            break
        }
    }

    // Everything went well. Return the data.
    return data
}

我也尝试过使用扫描仪,但不知道如何退出

for scanner.Scan() {
    data = append(data, scanner.Bytes()...)
}

当发生换行时(即当用户按下回车键时)。

我也尝试过 ReadBytes('\n') 但即使这样也停在 4095 字节。除了增加缓冲区的大小(这只是一个丑陋的黑客)之外,我不知道此时该怎么做。


如果您查看 Go 源代码,您会发现它使用默认缓冲区大小:

func NewReader(rd io.Reader) *Reader {
    return NewReaderSize(rd, defaultBufSize)
}

所以你可以在你的代码中使用:

var stdinReader = bufio.NewReaderSize(os.Stdin, 10000)

附: Go 是开源的,因此您只需查看内部结构就可以学到很多东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从标准输入读取大量数据 的相关文章

  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 如何在golang中解析JSON而不需要解组两次

    我有一个 Web 套接字连接 它在 JSON 对象中发送不同类型的消息 并且我想将内容解组到一些已知的结构中 为此 我认为我应该执行以下操作 步骤 1 将 JSON 解组为通用映射 字符串 接口 步骤 2 找到我要找的钥匙 步骤 3 尝试将
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 将 time.Time 转换为字符串

    我正在尝试将数据库中的一些值添加到 string在围棋中 其中一些是时间戳 我收到错误 无法在数组元素中使用 U Created date 类型 time Time 作为类型字符串 我可以转换吗time Time to string typ
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少

随机推荐

  • 帮助匹配两个类之间的字段

    我对 Java 还不太有经验 我希望有人能引导我走向正确的方向 因为现在我感觉我只是在用头撞墙 第一个类称为 MeasuredParams 它有 40 多个数字字段 身高 体重 腰围尺寸 手腕尺寸 一些是整数 但大部分是双精度型 第二类是统
  • 保存前受影响的 Mongoose _id

    var mongoose require mongoose mongoose connect mongodb localhost test var Cat mongoose model Cat name String var kitty n
  • Imagebutton 完整图像,圆角

    嗯 我的 Android 应用程序中有一些 ImageButtons 我希望他们展示完整的图片 我的意思是 我希望 ImageButton 只是图片 你知道吗 好吧 到目前为止 一切顺利 我可以使用 背景 属性来做到这一点 不过我也希望 I
  • 部署 Cloud Functions 后出现错误:无法刷新访问令牌。

    我已经用 Firebase Cloud Functions 进行了一段时间的实验 今天我对我的 index json 文件做了一个小小的更改 在要设置的文档中添加了一个字段 在 Firebase Console gt Functions g
  • 如何保持控件禁用直到线程结束

    我正在通过 GPS 调制解调器使用以下代码通过 comport 发送短信 Thread thread null private void btnsend Click object sender EventArgs e if thread n
  • Android:层次结构查看器不存在

    我在 Mac Sierra 上使用 Android Studio 2 3 打开设备监视器时找不到层次结构查看器 视角列表中没有查看者 有人知道这是为什么吗 无法评论 无代表 更新到最新的构建工具后 层次结构查看器和一堆其他东西已从工具目录中
  • MVC Ajax 更新面板

    我知道 至少我很确定 没有像 asp UpdatePanel 这样的 MVC 控件 谁能给我一些关于如何做到这一点的想法 我有一个集合 我从我的存储库和服务层添加条目 在我的主页中 我想根据此集合中是否有任何内容来显示警报 通常我会有一个
  • 使用 Bash 时哪些字符需要转义?

    Bash 中是否有需要转义的字符的完整列表 是否可以仅通过检查sed 特别是 我正在检查是否 是否需要逃避 我试过 echo h h sed s i g 并且工作得很好 没有逃脱 是不是意味着 不需要逃避吗 这是检查必要性的好方法吗 更一般
  • 在 Emacs + Slime + Clojure + Windows 设置中,无法加载 clojure-auto

    我跟着这个非常有用的指南 http dc clj fogus me index php title Installing Clojure and Slime on Windows设置此开发环境 当运行emacs bat我在 Emacs 中收
  • 我该如何处理<>f__AnonymousType0`2[System.Int32,System.String][]?

    我想访问从方法返回的列表 但我得到了错误 未捕获的类型错误 无法读取未定义的属性 长度 当我调试代码时 我在变量结果中得到了返回值 例如f AnonymousType0 2 System Int32 System String 那么如何处理
  • 如何运行 cURL 一次,循环检查域可用性?请帮助修复代码

    我所做的是域可用性检查 它连接到 API 并从 tmp 输出 可用 和不可用 下面的代码只会检查一次可用性 我想多次检查域的可用性 可能是循环 无需每次都重新启动 cURL 连接 因为这浪费时间 我只是不知道如何连接到 cURL 一次并运行
  • 正则表达式模式数字后跟一个字符

    我正在尝试让正则表达式适合以下场景 但遇到了一些麻烦 下面是场景 我的字符串看起来像这样 The office timing h is from 8h to 18h 从上面的字符串我需要 8h and 18h 到目前为止我已经做到了这一点
  • UIScrollview 与 UIButtons - 如何重新创建跳板?

    我正在尝试在我的应用程序中创建一个类似跳板的界面 我正在尝试使用添加到 UIScrollView 的 UIButtons 我遇到的问题是按钮没有将任何触摸传递给 UIScrollView 如果我尝试轻弹 滑动并碰巧按下按钮 它不会注册 UI
  • Objective-C 中子类是否继承其父类的协议?

    假设我有一个实现协议的父类 interface GameViewController UIViewController
  • 如何在玩笑测试中处理 localStorage?

    我在 Jest 测试中不断收到 localStorage 未定义 的消息 这是有道理的 但我的选择是什么 撞砖墙 很好的解决方案来自 chiedo https stackoverflow com users 2015685 chiedo 不
  • 从 matlab 调用 python

    我正在使用 matlab 2016b 很高兴看到 Matlab 中有一些 python 支持 https uk mathworks com help matlab matlab external call python from matla
  • 什么是 Levity 多态性

    正如问题标题所示 我想知道什么是 Levity 多态性以及它的动机是什么 我知道这一页 https ghc haskell org trac ghc wiki NoSubKinds其中有一些细节 但其中的大部分解释都超出了我的理解范围 Wh
  • Next 13 和 Tailwind 深色模式闪烁

    我希望通过 Next 13 的新 appDir 实现本博客中列出的结果 无闪烁深色主题切换 https conermurphy com blog make flicker free dark theme toggle nextjs tail
  • 如何使用 QDBusAbstractAdaptor 和 PyQt4 在 DBus 上公开方法和属性?

    我正在尝试使用 PyQt4 特别是 QtDBus 在 DBus 上运行一些基本代码 我正在使用 PyQt4 的 Python3 版本 我已经获得了想要在 Qt c 上运行的代码 但我想仅使用 Python 来运行类似的代码 我想在 DBus
  • 从标准输入读取大量数据

    如何从 Golang 的 stdin 读取大量数据 目前我的所有读取都停止在 4095 字节 我已经尝试了很多东西 但我当前的代码如下所示 var stdinReader bufio NewReader os stdin Input rea