【发布时间】:2010-05-13 01:44:09
【问题描述】:
我已经断断续续地使用 Java 大约 14 年了,在过去 6 年左右的时间里几乎没有其他任何事情。
我真的很讨厌 java.io 包——它的大量子类和适配器。我确实喜欢异常,而不必总是轮询“errno”之类的东西,但我肯定可以在没有声明的异常的情况下生活。
有什么功能类似于 C 中的 Unix/ANSI stdio.h 例程吗?
我知道,在 java 本身退役之前,我们永远不会摆脱 java.io 及其约定,因为它们已经转移到了许多已加入 java 的框架中。也就是说,我想要一些类似这样的东西(我们称之为包 javax.stdio):
有一个主要的实用程序类,可能是 FileStar,它可以读取和写入文件(或管道),无论是文本还是二进制,顺序或随机访问,其构造函数模仿 fopen() 和 popen()。
这个类应该有很多有用的方法,这些方法可以执行 fread()、fwrite()、fgets()、fputs()、fseek() 和其他任何事情(fprintf()?)。与 open/construct 模式不兼容的方法会简单地抛出(就像某些集合类/方法在受限时所做的那样)。
然后,有一堆接口建议您在创建流后打算如何使用它:Sequential、RandomAccess、ReadOnly、WriteOnly、Text、Binary,以及这些有意义的组合。甚至可能有返回适当类型转换(接口)的方法,如果您要求一些不兼容的东西,就会抛出。
为了更有趣,请跳过声明的异常——例如- javax.stdio.IOException 扩展了 RuntimeException。
有这样的开源项目吗?
【问题讨论】:
-
您是否考虑过Commons IO 让IO 代码不那么冗长?特别是名称中以
Utils结尾的类。例如。IOUtils和FileUtils. -
@BalusC:谢谢,不完全是我想要的,但里面有一些像这样的小宝石:commons.apache.org/io/api-release/org/apache/commons/io/…)