IMPORT JAVA.UTIL.SCANNER;
IMPORT JAVA.IO.*;

PUBLIC CLASS TRYFILEINPUTOUTPUT {

	PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
		STRING INFILENAME=NULL ,OUTFILENAME = "OUTFILE.TXT";
		SCANNER FILESCANNER;
		PRINTWRITER OUT;
		
		TRY {
			SCANNER SC = NEW SCANNER(SYSTEM.IN);
			WHILE (TRUE) // UNTIL WE GET A VALID FILE.
				TRY {
					SYSTEM.OUT.PRINT("ENTER INPUT FILE NAME: ");
					INFILENAME = SC.NEXTLINE();
					FILESCANNER = NEW SCANNER(NEW FILE(INFILENAME));
					BREAK; // WE HAVE A VALID FILE, SO EXIT THE LOOP.
				} CATCH(FILENOTFOUNDEXCEPTION E) {
					SYSTEM.OUT.PRINTLN("COULD NOT FIND FILE " + INFILENAME + ".  TRY AGAIN!");
				}
			OUT = NEW PRINTWRITER(NEW FILEWRITER(OUTFILENAME));
			WHILE (FILESCANNER.HASNEXTLINE()){  // PROCESS ONE LINE
				STRING LINE = FILESCANNER.NEXTLINE();
				LINE = LINE.TOUPPERCASE();
				FOR (INT I=0; I<LINE.LENGTH(); I++)
					OUT.PRINT(LINE.CHARAT(I));  // PROCESS EACH CHAR ON THE LINE
				OUT.PRINTLN();
			}
			OUT.CLOSE();
			FILESCANNER.CLOSE();
			SYSTEM.OUT.PRINTLN("DONE!");
		} CATCH (IOEXCEPTION E) {
			E.PRINTSTACKTRACE();
		} 
	}
}
