Я занимаюсь Java в течение 14 лет, и почти ничего больше последние 6 лет или около того.Есть ли java-библиотека/пакет, аналогичный <stdio.h>?
Я действительно ненавижу пакет java.io - его легион подклассов и адаптеров. I do как исключения, вместо того, чтобы всегда проводить опрос «errno» и т. П., Но я мог бы без всяких исключений бывать.
Есть ли что-нибудь, что функционирует как подпрограммы Unix/ANSI stdio.h в C?
Я знаю, что мы никогда не избавимся от java.io и его соглашений до тех пор, пока сам java не будет удален, поскольку они метастазируются во многих фреймворках, которые расширились до java. Тем не менее, мне хотелось бы что-то вроде этого (назовем его пакетом javax.stdio):
Имейте основной класс утилиты, возможно, FileStar, который может читать и записывать файлы (или трубы), либо текст, либо двоичный, либо последовательный, либо произвольный доступ, с конструкторами, имитирующими fopen() и popen().
Этот класс должен обладать полезными методами, такими как fread(), fwrite(), fgets(), fputs(), fseek() и все остальное (fprintf()?). Методы, которые несовместимы с режимом open/construct, просто вызывают (как и некоторые классы/методы коллекций, когда они ограничены).
Затем у вас есть куча интерфейсов, которые подсказывают, как вы собираетесь использовать поток после его создания: последовательный, RandomAccess, ReadOnly, WriteOnly, текст, двоичный код, а также комбинации из них, которые имеют смысл. Возможно, даже есть методы, чтобы вернуть соответствующий тип-литье (интерфейс), бросая, если вы попросили что-то несовместимое.
Для дополнительного аромата пропустите объявленные исключения - например. - javax.stdio.IOException расширяет RuntimeException.
Есть ли проект с открытым исходным кодом, похожий на этот плавающий?
Вы считаете [Commons IO] (http://commons.apache.org/io/), чтобы сделать код ввода-вывода менее подробным? Особенно классы, заканчивающиеся на 'Utils' в названии. Например. ['IOUtils'] (http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html) и [' FileUtils'] (http://commons.apache.org /io/api-release/org/apache/commons/io/FileUtils.html). – BalusC
@BalusC: спасибо, не совсем то, что я искал, но есть некоторые маленькие драгоценные камни, например: http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils .html # toByteArray% 28java.io.Reader% 29) – Roboprog