Я хотел бы знать, как лучше всего сделать «доступным» или «видимым» набор конструкторов потока файлового ввода-вывода, определенных в моей основной подпрограмме, для подпрограмм.
Я обнаружил, что не могу использовать «public», компилятор выдает ошибку «Illegal Expression».
Когда я помещаю файловый поток ввода-вывода и конструкторы каналов в открытый класс, определенный для
вся программа "пакет". Компилятор выдает ошибку, утверждающую, что обработка FileNotFound или IOException не объявлена, поэтому я добавил в свою основную процедуру следующее:
public static void main(String args[]) throws FileNotFoundException, IOException
{
// and if I then place the File I/O contructors after this:
//Connect to the LU62XC Message File
FileOutputStream MesgOut = new FileOutputStream(Mesg_File) ;
FileChannel MesgChnl = MesgOut.getChannel() ;
ByteBuffer Mesg_Bufr = ByteBuffer.allocate(128) ;
//Connect to the Request Input File
FileInputStream RqstInp = new FileInputStream(Rqst_File) ;
//Connect to the Response Output File
FileOutputStream RespOut = new FileOutputStream(Resp_File) ;
//Connect to the Request/Response Log File
FileOutputStream LogrOut = new FileOutputStream(Logr_File) ;
Я разрешаю «ошибка обработки исключений», но теперь моя проблема - подпрограммы
которые ссылаются на "построенные" объекты файла, по сути не может .. Я получаю кучу
«символ не найден» сообщения об ошибках. Опять же, если я поставлю «public» перед конструкторами файлового ввода-вывода, я получу сообщение «Illegal expression».
Есть ли выход из этого ???
Почему java-компилятор настаивает на том, чтобы программа обрабатывала ошибки, связанные с отсутствием файлов, мне не понятно.
Я имею в виду, что уже есть метод if file_object.exists()
...
ЕСЛИ файла нет ... ОС сообщит вам. Все, что ЛЮБОЙ прикладной программе (ООП или иным образом) делает, когда дело доходит до ввода-вывода любого рода, это сделать запрос к базовой ОС.