将所有标准输入读取到 Java 字节数组中

2023-12-04

现代Java(仅使用标准库)最简单的阅读方式是什么all of标准输入直到 EOF 转换为字节数组,最好不必自己提供该数组?标准输入数据是二进制数据,不是来自文件。

IE。像鲁比的东西

foo = $stdin.read

我能想到的唯一的部分解决方案是沿着

byte[] buf = new byte[1000000];
int b;
int i = 0;

while (true) {
    b = System.in.read();
    if (b == -1)
        break;
    buf[i++] = (byte) b;
}

byte[] foo[i] = Arrays.copyOfRange(buf, 0, i);

...但这即使对于 Java 来说也显得异常冗长,并且使用固定大小的缓冲区。


I'd use Guava和它的ByteStreams.toByteArray method:

byte[] data = ByteStreams.toByteArray(System.in);

不使用任何第三方库,我会使用ByteArrayOutputStream和一个临时缓冲区:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[32 * 1024];

int bytesRead;
while ((bytesRead = System.in.read(buffer)) > 0) {
    baos.write(buffer, 0, bytesRead);
}
byte[] bytes = baos.toByteArray();

...可能将其封装在接受的方法中InputStream,这基本上相当于ByteStreams.toByteArray反正...

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

将所有标准输入读取到 Java 字节数组中 的相关文章

  • Java 中类似 HashMap 的可排序数据结构?

    Java 中是否有某种类似于 HashMap 的数据结构 可以按键或值排序 在 PHP 中 您可以拥有可排序的关联数组 Java中有这样的东西吗 HashMaps 几乎按照定义是未排序的 一个好的哈希函数会产生看似随机的密钥分布 如果你想使
  • SWT:如何进行高质量图像调整大小

    我的应用程序需要调整 ImageData 的大小 不幸的是 我还没有通过 GC 开启抗锯齿和高插值 或 ImageData scaledTo 获得我想要的结果 生成的图像质量太低 无法接受 进行高质量 ImageData 调整大小的最佳方法
  • cygwin有java sdk吗?

    cygwin有java sdk吗 如果有一个使用 cygwin 文件系统和 X windows 进行显示的本机 cygwin 实现 那就太好了 不幸的是我不知道这样的版本 我认为移植 OpenJDK 也需要付出很大的努力 但我还没有尝试过
  • 将倒计时器从 10 秒改为 1 秒

    我有一个倒计时器 它以 1 秒的增量从 10000 毫秒倒计时到 0 毫秒 以使按钮在 10 秒后可单击 尽管计时器是准确的并且按照代码的说明执行操作 但我想更改秒的表示方式 但我不知道如何更改 java void startTimer c
  • 如何测试 Jersey REST Web 服务?

    我已经编写了一个 Restful Web 服务 并且必须使用 JUnit4 对其进行测试 我已经使用 Jersey Client 编写了一个客户端 但想知道我是否只能使用 junit4 测试我的服务 至少有人可以帮我提供样品吗 我的休息服务
  • java.time.LocalDate 到 java.util.Date

    转换的最佳方式是什么java time LocalDate to java util Date Date from dateToReturn atStartOfDay ZoneId systemDefault toInstant 我一直在尝
  • [TYPE] 类型的 Bean 'x' 不符合所有 BeanPostProcessors 的处理条件

    我有一个ResourceAspect class Component Aspect public class ResourceAspect Before execution public public void resourceAccess
  • docker 中带有参数的 jar 文件

    Helo 我有一个 java jar 文件 当我从终端运行它时 它会接受一堆参数作为输入 我想制作一个 docker 映像并运行它 其中包含 jar 文件 我仍然可以在其中传递 jar 文件的参数 将 jar 文件设置为您的入口点 http
  • Logback 配置在单行上有异常吗?

    我的日志被提取 传输并合并到 elasticsearch 中 多行事件很难跟踪和诊断 有没有办法使用收集器和正则表达式将异常行分组到单个记录中登录配置 https logback qos ch manual layouts html xTh
  • 声纳要求将这一领域定为最终目标

    我的程序中有以下代码 在与 Maven 集成后 我正在运行 SonarQube 5 对其进行代码质量检查 我面临这个错误 将此 public static processStatus 字段设为最终字段 将此 public static pr
  • Java J文件选择器

    我希望能够控制外观JFileChooser 我特别想保存如何JFileChooser上次显示时显示 我想保存它是否在详细信息 列表视图中使用以及列表被排序的列 例如 大小或修改日期 我知道有很多关于JFileChooser但我一直没能找到我
  • 如何使用jdbc驱动编写事务?

    我想使用 jdbc 编写一个事务java 我尝试过这个简单的交易 BEGIN TRANSACTION NL GO NL UPDATE table SET col test where id 1010 NL GO NL COMMIT 我尝试过
  • 在仔细锁定但不受信任的代码上使用 Thread.stop()

    我知道Thread stop 已被弃用 并且有充分的理由 它通常不安全 但这并不意味着它是never安全 据我所知 在我想要使用它的上下文中它是安全的 而且 据我所知 我别无选择 上下文是一个两人策略游戏的第三方插件 以国际象棋为例 第三方
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • 如何在 Java 中读取/转换 InputStream 为字符串?

    如果你有一个java io InputStream对象 您应该如何处理该对象并生成一个String 假设我有一个InputStream包含文本数据 我想将其转换为String 例如我可以将其写入日志文件 最简单的方法是什么InputStre
  • 如何保存/加载 BigInteger 数组

    我想保存 加载BigInteger数组传入 传出 SharedPreferences 如何做呢 例如对于以下数组 private BigInteger dataCreatedTimes new BigInteger 20 Using Gso
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 如何强制 Spark 执行代码?

    我如何强制 Spark 执行对 map 的调用 即使它认为由于其惰性求值而不需要执行它 我试过把cache 与地图调用 但这仍然没有解决问题 我的地图方法实际上将结果上传到 HDFS 所以 它并非无用 但 Spark 认为它是无用的 简短回
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点

随机推荐

  • VSTS 持续集成 - ASP.NET Core 和 Angular 4 项目

    我有 ASP NET Core Web 应用程序 VS2017 并且我开发了 Angular 4 前端项目 VS Code 它应该是该 Core Web 应用程序的一部分 我需要为整个事情设置 CI 因此 当这些项目中的任何一个发生任何变化
  • 修改 ng-include 指令

    如果我在某个自定义位置托管一个有角度的应用程序e g http localhost collosys然后我必须将所有 ng include 更改为所有地址都包含 collosys 因为我使用绝对地址来引用任何 html 文件 这就是我目前正
  • 如何使用node.js获取cheerio中的元素名称

    如何在cheerio 中获取元素的名称 等效的 jQuery 是 attr name 但这会返回undefined在欢呼 我想只有一种情况 someElement attr name 回报undefined 如果没有属性 name在那个元素
  • Spring Batch 的并行线程处理数量上限为 10

    我有以下任务执行器 用于运行带有分区的 10 秒睡眠时间的 tasklet
  • 在 D3.js 中添加带有嵌套条目的属性

    我已使用 d3 nest 进行按行值分组 代码是这样的 function createNestingFunction propertyName return function d return d propertyName var leve
  • 使用带参数的函数时 ebp 和 esp 在堆栈中的行为

    我想了解更多关于堆栈的知识 特别是 当调用带有参数的函数时会发生什么 为此 我编写了以下代码 include
  • 仅保留 SQL 数据库中的前 50 条记录并删除其余记录

    我有一个分数表 由 2 个字段组成 name and 高分 像这样的东西 name score John 2450 Alice 2420 etc 我需要delete直到前 50 名分数为止的所有行 是否可以不创建另一个临时表 请尝试这个 d
  • 理解汇编语言的 mul 和 imul 指令的问题

    我正在学习80386保罗 考特的 PC 组装 mul source 如果操作数是字节大小 则将其乘以 AL 中的字节 注册和结果存储在 AX的16位 fine 如果源是 16 位 则将其乘以 AX 中的字和 32 位结果存储在 DX AX
  • IDispose 对象是否可以没有可用的 Dispose 方法

    我在用文件助手在一个项目和班级中MultiRecordEngine public sealed class MultiRecordEngine EventEngineBase IEnumerable IDisposable 这个类实现了ID
  • Node.js / Mongodb 插入回调返回未定义

    当我运行下面的简单代码来插入新文档时 collectionUsers insert name john function err records if err throw err console log Id of new document
  • 如何管理多个开发人员的合并更新? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我与一个中型开发团队合作 他们都致力于同一个产品 开发人员编写代码来解决功能或错误修复问题 然后将其签入我们的主要开发分支 在 Subversion 中 一旦 QA 人员对票证进
  • frida hook 原生非导出函数

    我出于学习目的逆向这个 Android 应用程序 该应用程序在本机层上实现了所有有趣的功能 因此我在 Arm Android Studio 映像上运行该应用程序并逆向共享库 因此该应用程序正在使用 ghidra 进行调用我设法将共享对象反编
  • 如何使此正则表达式替换适用于所有字符,而不仅仅是第一个字符?

    我正在尝试用连字符替换字符串中的所有空格 我试过这个 h3Text replace s 但它仅替换空格的第一个实例 而不替换其后的空格 使它替换的正则表达式是什么all空位 try h3Text replace s g the g标志是这里
  • 如何在Python matplotlib中的LaTeXed下标中包含字符串链[重复]

    这个问题在这里已经有答案了 我想使用 LaTeX 在 matplotlib 图的图例中编写一个带有下标的变量 解决此类问题的一种可能的代码可能是 import numpy as np import matplotlib pyplot as
  • 使用 JSON 每 x 秒更新传单标记位置

    我的地图上有一个标记 代表国际空间站的当前位置 从http open notify api herokuapp com iss now json callback 我还试图让它每 1 秒移动一次 以跟随空间站的轨道 这是我现在的代码 get
  • 在变量周围添加引号

    我需要从 SQL 导出数据并导入 SAS 地址字段的字符串中间有 我尝试使用 CSV 和制表符分隔 但每次 SAS 都会由于 而打破地址字段 我尝试使用另一个问题中的代码将逗号替换为空格 但它不起作用 update temp2 set ST
  • WinForm 应用程序 UI 在长时间运行的操作期间挂起

    我有一个 Windows 窗体应用程序 我需要使用一个 for 循环 其中有大量远程调用 大约 2000 3000 个调用 在执行 for 循环时 我失去了对表单和表单控件的控制 因为它变成了一个大进程 有时它显示 未响应 但如果我等待很长
  • C语言中如何使用void指针?

    以下是我无法理解如何完成的几个函数声明 我扫描了网络以了解 void 指针是什么 并且我知道它必须转换为有用的东西 因为它只指向某个内存块 但我不知道这如何帮助完成这些声明 type of comparison function that
  • Java SAXParser 解析无效的 xml [重复]

    这个问题在这里已经有答案了 我正在尝试解析一些无效的 xml 因为属性没有用引号引起来 有什么方法可以解决这个问题吗 下面是一个简单的例子 以及java代码 XML
  • 将所有标准输入读取到 Java 字节数组中

    现代Java 仅使用标准库 最简单的阅读方式是什么all of标准输入直到 EOF 转换为字节数组 最好不必自己提供该数组 标准输入数据是二进制数据 不是来自文件 IE 像鲁比的东西 foo stdin read 我能想到的唯一的部分解决方