当前位置: 首页 > 面试题库 >

作家还是OutputStream?

尉迟越
2023-03-14
问题内容

我正在设计一个库,在该库中,一个类应具有将自身内部结构转换为文本的能力。我应该使用哪个班级:OutputStreamWriter?两者之间的主要区别是什么?

public interface Memento {
  void save(OutputStream stream);
  void save(Writer writer);
}

哪一个?


问题答案:

An OutputStream是面向字节的流。您编写的任何文本都必须使用某种编码(最常见的是ISO-8859-1或UTF-8)编码为字节。A
Writer是面向字符的流,根据它要写入的内容,它可能会或可能不会在内部将字符编码为字节。

编辑
如果您正在设计一个库,那么如果您提供一个OutputStream将文本写入其中的面向接口的接口,则实际上应该为客户端类提供控制所使用编码的能力。



 类似资料:
  • 问题内容: 我有一个归档过程,该过程基本上是在设置的天数后删除已归档的记录。编写计划的SQL作业或Windows服务来完成删除是否更好?该数据库是mssql2005。 更新: 要说出下面的一些答案,这个问题是关于内部应用程序,而不是分布式产品。 问题答案: 这取决于您要完成的工作。您想将已删除的档案存储在某个地方吗?记录更改?由于SQL作业直接在数据库中运行,因此它应具有更好的性能,但是更容易为数

  • 我将用一个例子来问这个问题。假设我有一个这样的项目目录。 首先我想知道我是否把作曲家放在。项目目录中的json文件是否正确,以便在供应商目录中安装库?第二,假设我有以下几行,作曲家。json 那么作曲家将在哪里配置自动加载来查找关于项目根的类samplevendor\包\sampleclass?我问这个问题是在看了symfony2composer.locked文件中的以下几行之后: 更新:我在自动

  • 我应该将traefik 1.7.x部署为DaemonSet还是在GKE(Google K8S)中部署为A部署? Kubernetes集群使用Google cloud中的node autoscaler,托管几个生产集群。集群最多可以扩展到90个节点(最少6个节点),目前我们在每个集群中部署了10个副本的< code>traefik pod(我们使用kustomize在所有集群中部署相同的清单)。 我

  • 考虑下面的 Work,Author 和 Person 模型的关系。我们用多对多关系来描述 Work 和 Author,用一对一关系来描述 Author 和 Person,另一种可能性是 Author 继承 Person。 下面的映射文件正确的描述了这些关系: <hibernate-mapping> <class name="Work" table="works" discriminat

  • 问题内容: 在Golang中,和之间有什么区别? 我发现这两种方法都可行,但是哪一种更好? 问题答案: 除了fabriziom的答案外,您还可以在“转到切片:用法和内部方法”中看到更多示例,其中提到了的用法: 由于slice()的零值就像 零长度的slice一样 ,您可以声明slice变量,然后在循环中附加到该变量: 这意味着,要附加到切片,您不必先分配内存:切片足以作为要添加的切片。

  • 根据yaml.org,正式文件扩展名为。 报价: 如果可能,请使用“.YAML”。 然而,在互联网上使用哪种扩展似乎存在分歧。如果您在web上查找示例,许多示例都使用未经许可的扩展名。