首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通用Java输出库或模式

通用Java输出库或模式
EN

Stack Overflow用户
提问于 2009-11-03 22:50:13
回答 5查看 248关注 0票数 0

我正在从一个java应用程序中写出一大堆数据,这些数据可以被最终用户使用,可以是文件、控制台或任意监听程序。如果允许用户指定他们希望如何使用这些数据,那就太好了。人们对这类问题采取了什么方法,有没有一个很好的开源解决方案?我可以看到一些简单的东西,比如使用带有不同附加器的log4j等等。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-11-03 23:01:53

考虑输出数据采用的形式,以及应用程序可能需要返回的响应对象,然后选择或创建满足这些要求的接口。

在最抽象的层次上,您将输出一堆字节,因此OutputStream肯定是“字节接收器”的正确接口。更高的抽象级别,您可能会输出文本字符,以防Writer合适。如果你要传递域对象,那么你可能需要更具体的东西。

然而,我怀疑您的界面不需要比

代码语言:javascript
运行
复制
public interface Consumer<T>
{
    public void consume(T obj);
}

如果您的提供者关心这类事情(例如,使用int来记录处理的实体数量),则可能使用返回类型。毫无疑问,在开源项目中,有很多接口都符合类似的模式--毕竟,在一个具有单一一元方法的接口中,你只能有这么多的变化--但是没有什么东西会像这种模式的“一个真实版本”那样浮现在脑海中。此外,它真的很容易理解,因为你不必担心实现,所以在大约60秒内自己滚动几乎没有任何负面影响。

票数 0
EN

Stack Overflow用户

发布于 2009-11-03 22:55:33

您是在谈论Java应用程序内部的接口吗?

在这种情况下,只需提供从中读取数据的InputStream/Reader或接受写入数据的OutputStream/Writer即可。

如果您正在谈论与外部程序的通信,那么就做UNIX工具长期以来所做的事情:

stdin

  • Write到stdout

  • 读取

这样,用户可以做他们想做的任何事情:

通过keyboard

  • Pipe输出命令的输出将
  • 输出到任何其他命令或文件
  • 将文件的内容输出到您的command
  • Enter

InputStream/Reader/OutputStream/Writer思想基本上与应用于Java API的概念相同。

票数 1
EN

Stack Overflow用户

发布于 2009-11-03 22:55:45

您可以设计您的数据生成应用程序接口,使其与通用的WriterOutputStream一起工作;我个人更喜欢Writer,因为我认为它使API更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1667805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档