Я включаю и выключаю Java около 14 лет, и почти ничего за последние 6 лет или около того.
Я действительно ненавижу пакет java.io - его легион подклассов и адаптеров. Я делаю подобные исключения, вместо того, чтобы всегда опрашивать "errno" и т.п., но я, безусловно, мог бы жить без объявленных исключений.
Есть ли что-нибудь, что работает как подпрограммы Unix / ANSI stdio.h в C?
Я знаю, что мы никогда не избавимся от java.io и его соглашений до тех пор, пока сама java не будет удалена, так как они метастазировали во многих структурах, которые аккрецировались в java. Тем не менее, я хотел бы, чтобы что-то вроде этого работало (назовем это package javax.stdio):
Имейте основной служебный класс, возможно, FileStar, который может читать и записывать файлы (или каналы), как текстовые, так и двоичные, с последовательным или произвольным доступом, с конструкторами, имитирующими fopen () и popen ().
Этот класс должен иметь множество полезных методов, которые выполняют такие функции, как fread (), fwrite (), fgets (), fputs (), fseek () и все остальное (fprintf ()?). Методы, которые несовместимы с режимом открытия / конструирования, просто выдают (как некоторые классы / методы коллекций, когда они ограничены).
Затем, есть несколько интерфейсов, которые предлагают, как вы собираетесь использовать поток после того, как вы его создали: Sequential, RandomAccess, ReadOnly, WriteOnly, Text, Binary, а также их комбинации, которые имеют смысл. Возможно, даже есть методы для возврата соответствующего приведения типа (интерфейса), который вырвется, если вы попросили что-нибудь несовместимое.
Для дополнительного вкуса пропустите заявленные исключения - например, - javax.stdio.IOException расширяет RuntimeException.
Есть ли такой проект с открытым исходным кодом?