Java - 重置输入流

2024-03-24

我正在处理一些Java代码,其中有一个我读取了一次的InputStream,然后我需要以相同的方法再次读取它。

问题是我需要将其位置重置为开头才能读取两次。

我找到了一个解决该问题的黑客式解决方案:

is.mark(Integer.MAX_VALUE);

//Read the InputStream is fully
// { ... }

try
{
    is.reset();
}
catch (IOException e)
{
    e.printStackTrace();
}

这个解决方案会导致一些意想不到的行为吗?或者它会在它的愚蠢中发挥作用?


正如所写,你没有任何保证,因为mark()不需要报告是否成功。要获得保证,您必须先致电标记支持() http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#markSupported%28%29,并且它必须返回true.

同样如所写,指定的读取限制是非常危险的。如果您碰巧使用在内存中缓冲的流,它可能会分配 2GB 缓冲区。另一方面,如果您碰巧使用FileInputStream, 你没事。

更好的方法是使用BufferedInputStream具有显式缓冲区。

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

Java - 重置输入流 的相关文章

  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • 使用 Tabula 通过 Python 读取 pdf 时出现 Java 错误

    我已经安装了 tabula 库 用于使用 python 将 pdf 读取到 pandas 数据框中 但是当我运行代码时 import tabula df tabula read pdf sample1 pdf pages 1 我得到了例外
  • 如何在由子控件组成的 SWT 复合材料上跟踪鼠标?

    我创建了自己的控件 我想跟踪鼠标并添加一个MouseTrackListener 很遗憾MouseEnter and MouseLeave当鼠标移动到我的合成部分 即标签和按钮 上时 也会生成事件 Mouse enter mouse ente
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • 如何在java中将数组值排序为循环格式?

    我的数组值如下 String value 1 2 3 4 5 6 7 8 9 10 假设如果我将值 5 传递给 tat 数组 它应该按如下顺序排序 5 6 7 8 9 10 1 2 3 4 怎么办 有人帮忙吗 感谢你 你需要的就是所谓的轮换
  • 如何在 JavaFX 中连接可观察列表?

    我所说的串联是指获得一个新列表 该列表侦听所有串联部分的更改 方法的目的是什么FXCollections concat ObservableList
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • Runtime.exec 处理包含多个空格的参数

    我怎样才能进行以下运行 public class ExecTest public static void main String args try Notice the multiple spaces in the argument Str
  • 提供节点名或服务名,或未知 Java

    最近我尝试运行我的 Java 项目 每当我运行它并将其打开到我得到的服务器地址时 Unable to determine host name java net UnknownHostException Caused by java net
  • 在 Java 中如何找出哪个对象打开了文件?

    我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件 这是为了调试 因此欢迎使用工具或实用程序 如果发现哪个对象太具体了 这class也会很有帮助 这可能很棘手 您可以从使用分析器开始 例如VisualVM http visua
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 如何获取 ODP.NET 中通过 OracleParameter 传递的绑定变量的跟踪信息?

    经过多次谷歌搜索但没有找到我要找的东西后 我决定问这个问题 我在用着绑定变量正如这篇精彩文章所示2005 titled 具有约束力的价值观 http www oracle com technetwork issue archive 2005
  • 测量时间间隔和乱序执行

    我一直在阅读有关 Java 内存模型的内容 并且我知道编译器可以重新组织语句来优化代码 假设我有以下代码 long tick System nanoTime function or block whose time i intend to
  • 将 Option[x]“转换”为 x

    我正在使用 Scala 2 1 的 play 我需要转换Option Long 价值Long 我知道如何做相反的事情 我的意思是 def toOption Long value Long Option Long if value null
  • 在OpenSSL中使用RSA公钥生成相应的私钥?

    我知道可以使用这个链接 https www ibm com support knowledgecenter en SSWHYP 4 0 0 com ibm apimgmt cmc doc task apionprem gernerate s
  • React-Native:Formik ref 无法获取值

    我在react native中有一个带有formik形式的虚拟登录代码 import React Component from react import TextInput Text Alert Image View TouchableOp
  • 蛋糕模式可以用于非单例样式依赖吗?

    我遇到的大多数蛋糕模式示例似乎都将依赖关系视为单例类型服务 其中 在组件的最终组装中每种类型只有一个实例 当使用蛋糕模式进行依赖注入时 是否可以编写一个具有多个特定类型实例的配置 可能以不同的方式配置 考虑以下组件 通用 HTTP 服务 t
  • 将正则表达式从 .NET 转换为 javascript 时出错

    我有这段 VBNet 代码 我想将其转换为 JavaScript Dim phone check pattern 0 9 1 3 0 9 0 9 x X e E x X t T 0 9 0 9 System Diagnostics Debu
  • 在 bash 脚本中发送邮件输出文字 \n 而不是换行

    我正在使用以下 bash 脚本发送电子邮件 bin bash recipients email protected cdn cgi l email protection email protected cdn cgi l email pro
  • 如何在 IntelliJ IDEA 中运行 Scala 脚本?

    这是一个简单的 Scala 脚本 object test def hi print hi there from here test hi 从命令行它会执行预期的操作 scala shared scaladem src main scala
  • 如何将值应用于函数列表

    我想要实现的是 apply a gt a gt b gt b 这是一种映射的逆 map a gt b gt a gt b 我试过胡格尔 但没有成功 任何人都可以建议一种在 Haskell 中执行此操作的干净方法吗 apply a gt a
  • 如何向 javascript 对象添加键值

    我正在努力学习JS 这看起来很简单 但我不知道该怎么做 拥有基于此的 javascript 对象很好thread https stackoverflow com questions 688097 objects vs arrays in j
  • 如何处理 nil 值变量

    我有如下模型 struc Info Decodable var firstName String var lastName String 在表格视图单元格中显示时 我正在做的事情如下 personName text personArray
  • 使用 APP Store 配置文件导出 iPhone 应用程序时出现“符号工具失败”错误

    成功存档后 在将存档导出到 保存以进行应用商店部署 时 出现以下错误 符号工具失败 在导出过程中 我观察到 二进制和权利 部分有两个条目 1 应用商店 targetAppName 5 个权利 具有有效的配置文件 2 构建文件之一FTALDe
  • 从扩展内获取 Chrome 选项卡的窗口句柄?

    我编写了一个 Chrome 扩展 也带有 NPAPI 允许我的应用程序和 Chrome 相互通信 这一切基本上都工作正常 我现在想做的是将 Chrome 窗口的 HWND 绑定到特定的窗口 ID 和选项卡 ID 当我在 Chrome 中 通
  • 我可以弹出到特定的 ViewController 吗?

    我正在使用基于导航的应用程序 我将第一个 ViewController 推到第二个 ViewController 然后从第二个 ViewController 推到第三个 ViewController 现在我想从第三个 ViewControl
  • 配置配置文件不支持无线配件配置功能

    从 Xcode 7 3 升级到 Xcode 8 后 出现错误 供应配置文件 iOS团队供应配置文件 没有 支持无线配件配置功能 我可以知道如何解决这个问题吗 您应该在苹果的开发者门户中启用它 转到 应用程序 ID 并编辑您的应用程序 检查W
  • Omniauth Facebook 不返回电子邮件和性别栏 4

    我需要从 Facebook 获取姓名 电子邮件 图像和性别 我正在获取姓名和图像 但电子邮件和性别不是从 Facebook 获取的 我这两天都在苦苦挣扎 谁能帮帮我 用户模型 def self from omniauth auth wher
  • 在 Kindle Fire 上调试 Adob​​e AIR 应用程序

    可能的 我认为要做到这一点 我需要将 Fire 上的 AIR 运行时升级到 3 但应用商店中的版本无法安装 据我所知 我无法创建既是强制运行时又是调试的 AIR apk 因此应用程序的调试版本必须在安装的 AIR 运行时上运行 由于 Fir
  • 如何创建从 C++17 中的可变参数模板推导的类型向量元组?

    我已经实现了一个集合类 它将元组向量转换为向量元组 它本质上是 AOS 到 SOA 的转换 此代码适用于两个模板类的示例 我试图通过使用可变参数模板使其更加通用 为了做到这一点 我需要为成员变量创建类型m col 在 C 17 中 是否可以
  • Java - 重置输入流

    我正在处理一些Java代码 其中有一个我读取了一次的InputStream 然后我需要以相同的方法再次读取它 问题是我需要将其位置重置为开头才能读取两次 我找到了一个解决该问题的黑客式解决方案 is mark Integer MAX VAL