【问题标题】:Using Java, what's the simplest method of writing a file to disk in a format that is easily readable by other applications使用 Java,以其他应用程序易于读取的格式将文件写入磁盘的最简单方法是什么
【发布时间】:2012-03-14 02:32:48
【问题描述】:

我被要求“以其他应用程序易于读取的格式将文件写入磁盘。文件不需要人类可读”。要写入文件的数据是整数、字符串和日期变量的组合。

我不太清楚这个问题的目的是什么,正确答案应该是什么。

为了以其他应用程序易于读取的格式(使用最简单的方法)将文件写入磁盘,需要考虑哪些核心因素。

不,这不是家庭作业。

【问题讨论】:

  • INI 文件得到广泛支持。
  • 这是一个面试题吗?每行值列表的最简单数据格式是 IMO csv
  • Easily readable by other applications 可能取决于它们是什么类型的应用程序。如果数据是 CSV 格式,可以用记事本、Excel、MSSQL 等打开。XML 格式也可以被这些应用程序读取,因为它们有解析器来读取它。
  • 是的,这是一个面试问题。可以这么说,我没有得到这份工作:-)

标签: java file serialization


【解决方案1】:

这是一个非常模糊的要求。如果其他应用程序也是用 Java 编写的,那么 Java 序列化可能是最好的方法。

编辑:@leftbrain — 在回答您的评论时,我想我会倾向于 XML;它旨在支持应用程序之间的基本互操作性。所提到的三种数据(整数、字符串和日期)通常无需特殊技巧即可准确表示,并且对大多数编程语言的 XML 处理都有很好的支持。但是,每种数据类型(抽象地)都可能带来挑战。我会问以下问题:

  1. 需要支持什么范围的整数值?
  2. 可以对字符串数据做出哪些假设(如果有)?是否需要支持完整的 Unicode 字符集?
  3. 需要支持哪些日期范围和哪些日历系统?
  4. 数据是否有明确定义的结构?
  5. 写入或读取操作的性能(在时间和/或内存方面)是否存在问题? “易于阅读”是什么意思?

【讨论】:

  • 非常感谢您的回答。如果它们也不是 Java 应用程序,可以使用哪些方法?我可以问什么问题来澄清要求。
  • @loudsight - 我扩展了我的答案
【解决方案2】:

面试官的目的是了解您在该领域有哪些经验,或者您在实施此类解决方案时可能会考虑什么。它是开放式问题,没有正确答案,而是取决于要求。

一些建议使用数据结构的序列化。这里有几个http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking

使用 SQL 或 NoSQL 数据库。这里有一些 NoSQL 数据库。 http://nosql-database.org/

使用 DataOutputStream (IO)、堆或直接 ByteBuffers 或内存映射文件将数据写入磁盘。这对于问题中建议的简单情况非常有效。随着您的要求变得越来越复杂,您可能会考虑其他选项。

【讨论】:

    【解决方案3】:

    如果您需要支持多种语言,您可以使用 xml。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 2020-12-29
      • 2011-06-15
      • 1970-01-01
      • 2014-05-16
      相关资源
      最近更新 更多