int entry = 0; System.out.print(menu); while (entry != 9) { try {//This try is to catch NumberFormatException. entry = Integer.parseInt(keyboard.readLine()); } catch (NumberFormatException e) { System.out.println("Please only enter option number."); } //Switch the entry variable. switch (entry) { case 1://To Login System.out.println("Please enter password\n"); String password = keyboard.readLine(); try { jrss.login(password); System.out.println("Login successful."); } catch (RemoteException re) { System.out.println(re); keyboard.readLine(); } break; case 2://Return details of files in the local working directory on the server try { FileInfo fileInfo[] = jrss.ls(); System.out.println("File name\tFile type\tFile size\tLast modified"); System.out.println("_______________________________________________________________________"); for (int i = 0; i < fileInfo.length;i++) { System.out.println(fileInfo[i].getFileName() +"\t"+fileInfo[i].getFileType()+"\t"+ fileInfo[i].getFileSize()+"\t"+fileInfo[i].getModifyDate()); } System.out.println("_______________________________________________________________________"); } catch (RemoteException re) { System.out.println(re); } break; case 3://Returns first lines of a file String linesMsg[]; System.out.println("Please enter file name under current direcotry:\n"); String fileName = keyboard.readLine(); System.out.println("Please enter number you like to read:\n"); int lineNumber = 0; try {//This try is to catch NumberFormatException. //Convert the input to Integer, if input is non-digits, throw exception; lineNumber = Integer.parseInt(keyboard.readLine()); } catch (NumberFormatException e) { System.out.println("Please only enter digits."); } try { linesMsg =jrss.lines(fileName,lineNumber); for (int i = 0; i < linesMsg.length; i++) { if (linesMsg[i] != null) { System.out.println(linesMsg[i]); } } } catch (RemoteException re) { System.out.println(re); } break; case 4://Change current working driectory on the server String childDirectory = keyboard.readLine(); try { String cdMsg = jrss.cd(childDirectory); System.out.println(cdMsg); } catch (RemoteException re) { System.out.println(re); } break; case 5://Return working directory on the server try{ String dir = jrss.pwd(); System.out.println("The directory on server is: " + dir); }catch (RemoteException re) { System.out.println(re); } break; case 6://To logout from server try { if (jrss.logout()) { System.out.println("Logout successful."); } } catch (RemoteException re) { System.out.println(re); } //loginState = "0"; break; case 7://Quit client side application try { if (jrss.exit()) { System.out.println("Client programme shut down successful!"); System.exit(0); } } catch (RemoteException re) { System.out.println(re); } break; case 8://Reprint menu; System.out.print(menu); break; default: System.out.println("Please select from 1-8 to operate."); } }