java - 是否有类似于 <stdio.h> 的 java 库/包?

标签 java stdio java-io

我断断续续地研究 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()?)。与开放/构造模式不兼容的方法只会抛出(就像某些集合类/方法在受到限制时所做的那样)。

然后,有一堆接口(interface)建议您在创建流后打算如何使用该流:顺序、随机访问、只读、只写、文本、二进制,以及这些有意义的组合。也许甚至有方法返回适当的类型转换(接口(interface)),如果您要求不兼容的东西,则会抛出错误。

为了获得额外的 flavor ,请跳过声明的异常(exception) - 例如- javax.stdio.IOException 扩展了 RuntimeException。

是否有这样的开源项目?

最佳答案

Java IO 库不是最好的,但您基本上应该接受它。 C 中的代码类似于 C。Java 中的代码类似于 Java。 Java IO 类即使不是有点冗长,也是相当简单的。

您也可以使用 Java NIO 包,但它们往往有更专门的用例。

关于java - 是否有类似于 <stdio.h> 的 java 库/包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823977/

相关文章:

java - 主要变体搜索 : how to keep track of the best move

c - fread(&c, 1, 1, input) 和 fgetc(input) 读取一个字节的区别

c - C 中的 FILE 关键字到底是什么?

stdio.h 中的函数 getline() 可以与 K&R88 中的函数共存吗?

java - 如何转换 PNG<->JPEG<->TIFF 图像

Java - 更改 FileReader 的文件路径

java - Selenium-RC 中使用 XPath 定位元素的问题

java - Servlet 初学者

Java用户类

java - 从文本文件中读取单词和数字