“DataOutputStream”和“ObjectOutputStream”之间的区别

2024-01-10

我是一名初学者程序员,正在关注这个Java教程 http://docs.oracle.com/javase/tutorial/.

In the 基本输入/输出 http://docs.oracle.com/javase/tutorial/essential/io/部分,提到的两个类是数据流 http://docs.oracle.com/javase/tutorial/essential/io/datastreams.html and 对象流 http://docs.oracle.com/javase/tutorial/essential/io/objectstreams.html.

它们的用法非常相似:

out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));

// ..

in = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));

for DataInputStream and

out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));

// ..

in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(dataFile)));

for ObjectInputStream

我知道它是这么说的DataInputStreams用于原始对象,并且ObjectInputStreams用于对象(及其序列化),那么我应该使用哪一个?两个都使用基本类型的示例类之间没有明显的区别。我通常也使用原始类型。

就性能而言,哪一个更好?还有其他大的差异吗?

thanks.


DataStreams用于 I/O原始类型哪个是int, float, double等等。

ObjectStreams用于 I/Oobjects.

如果您知道您将显式地使用原始类型,那么请使用DataStreams,否则使用更通用的ObjectStreams其中实施数据输入接口 http://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html对象输入接口 http://docs.oracle.com/javase/7/docs/api/java/io/ObjectInput.html因此可以使用基元和对象。

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

“DataOutputStream”和“ObjectOutputStream”之间的区别 的相关文章

随机推荐

  • 在酶中使用 id 进行包装器查找,并且玩笑未找到元素

    我是 Jest 和 Enzyme 测试的新手 我想知道为什么 find 函数不能与 id 一起使用 来自react的html 只是id增量的代码 div div div div
  • LL 解析器比 LR 解析器有什么优势?

    LL 解析器相对于 LR 解析器有什么优势来保证它们在当今的解析器生成器工具 http en wikipedia org wiki Comparison of parser generators 根据维基百科 http en wikiped
  • 使用 Bluehost 帐户设置 PHPMailer

    我尝试联系 Bluehost 的支持人员 但他们不知道如何设置 我所做的是首先创建我的电子邮件帐户 VPS 帐户 然后获取我的电子邮件设置的所有详细信息 电子邮件设置 邮件服务器用户名 电子邮件受保护 cdn cgi l email pro
  • golang反映值类型的切片

    fmt Println v Kind fmt Println reflect TypeOf v 如何找出切片的反射值的类型 上面的结果是 v Kind slice typeof reflect Value 当我尝试Set如果我创建了错误的切
  • 使用 C# 循环遍历屏幕上给定标签 WP7 的所有按钮

    我正在寻找一种简单的方法来循环浏览屏幕上给定标签的所有按钮 例如 富 我正在使用 WP7 使用 C 我对这个平台很陌生 所以对我要轻松一些 P 谷歌搜索这类事情对我来说也不太有效 我认为我的术语是错误的 所以任何关于这方面的提示也将不胜感激
  • CakePHP 应用程序部署

    我有兴趣了解人们如何部署他们的 CakePHP 应用程序 最近有人联系我做一些自由的 CakePHP 开发 这对我来说是一个在表示层获得一些经验的好机会 在我的 FT 工作中 我在业务层和持久层进行 Java EE 开发 此时我的想法有点混
  • 动态加载控制器和 ng-include

    目前我有一个有侧边栏的应用程序 侧边栏使用以下方式加载不同的html模板ng include基于用户选择执行的操作 这是一个与地图相关的应用程序 例如 如果用户选择 添加航段 按钮 它将加载add leg html使用模板将其放入侧边栏ng
  • Android数据存储在xml中

    我有一个网络平台 用于存储我正在构建的应用程序的数据 Web 平台是使用 Ruby on Rails 构建的 主要应用程序适用于 Android 我很想知道将数据存储在 XML 文件 对于 Android 应用程序 中的任何性能问题 最终
  • Swift:如何在登录视图后显示选项卡栏控制器

    我在这里看到了很多与此类似的帖子 但它们都是关于 Objective C 而我正在用 Swift 开发我的应用程序 正如您从图像中看到的 我有一个登录屏幕视图 并且我正确地实现了登录机制 现在我希望登录成功后 显示选项卡栏控制器 在我的登录
  • 我可以将 tf.map_fn(...) 应用于多个输入/输出吗?

    a tf constant 1 2 3 4 5 6 b tf constant True False dtype tf bool a eval array 1 2 3 4 5 6 dtype int32 b eval array True
  • 无法在 Elasticsearch 中注册快照存储库

    我正在使用 Elasticsearch 1 4 和 ubuntu 12 04 3 LTS 尝试为本地 elasticsearch 创建快照 我参考这个website http www elasticsearch org guide en e
  • TYPO3:如何在后端添加css和JS

    我该如何添加css and javascript后端有文件吗 我想将这些文件用于自定义创建的内容元素以使它们对用户更具吸引力 System TYPO3 v9 Mode 作曲家模式 Target 自定义内容元素 在 TYPO3 v9 中 您必
  • N 个函数调用后的睡眠装饰器 Python/Selenium

    使用 Python Selenium 我定义了一个休眠装饰器 在 Web 抓取项目的 5 个函数调用 对服务器的请求 之间等待 20 秒 这样我就不会压垮他们的服务器 查看终端输出 它似乎按照我的预期工作 但是当我在创建输出文件 Hitac
  • 输入类型时间,有24小时以上选项

    我想使用时间输入来允许用户在视频中选择精确的时间 在一些很长的视频上 我不希望输入将选择限制为最大 23 59 59 是否可以选择例如 46 59 10 IE 保持分钟和秒部分的原始行为 但允许小时超过 23 我尝试设置max 10000
  • 如何在 iOS 中使用 Swift 正确检索加速度计数据?

    我正在尝试记录 iPhone 加速度计 我自己的 iPhone 5s 的数据 并使用以下命令在屏幕上为该数据设置标签String format 2f data 其中 data 是我要记录的特定轴的值 为此 我设置了 CMMotionMana
  • Python 类继承问题

    我正在研究 Python 类继承并遇到了一个问题 继承的 init 如果从子类 下面的代码 调用 则不会执行我从 Active Python 得到的结果是 gt gt gt start Tom Sneed Sue Ann Traceback
  • GCM - 收到错误消息“处理请求时出现未知错误。请重试。”创建新项目时

    我们正在尝试使用 Google Developer Console 获取 API 密钥和发件人 IDhttps developers google com mobile add https developers google com mob
  • 将 Sublime Text 与 Tomcat 集成

    在工作中 我们开发 Java 应用程序并使用 Eclipse 作为一名前端开发人员 我想完全切换到 Sublime 但它缺少 Eclipse 的一个功能 没有它我就无法工作 开发时 我必须使用 Maven 构建项目并将其发布到 Tomcat
  • 'b' aria-label='fn 类型的 ml 函数:'a -> 'b'> fn 类型的 ml 函数:'a -> 'b

    功能 fn a gt b 现在 有没有可以定义并具有这种类型的函数 标准机器学习中该函数签名有两种可能的实现 一种使用异常 另一种使用递归 val raises a gt b fn a gt raise Fail some error In
  • “DataOutputStream”和“ObjectOutputStream”之间的区别

    我是一名初学者程序员 正在关注这个Java教程 http docs oracle com javase tutorial In the 基本输入 输出 http docs oracle com javase tutorial essenti