|
GetfileCommand |
|
1 // joi/10/juno/GetfileCommand.java 2 // 3 // 4 // Copyright 2003, Bill Campbell and Ethan Bolker 5 6 import java.util.*; 7 import java.io.*; 8 9 /** 10 * The Juno shell command to get a text file from the underlying 11 * operating system and copy it to a Juno text file. 12 * Usage: 13 * <pre> 14 * getfile native-filename juno-filename 15 * </pre> 16 17 * <pre> 18 * 19 * @version 10 20 */ 21 22 class GetfileCommand extends ShellCommand 23 { 24 GetfileCommand() 25 { 26 super( "download a file to Juno", 27 "native-filename juno-filename" ); 28 } 29 30 /** 31 * Use the getfile command to copy the content of a real 32 * file to a Juno TextFile. 33 * <p> 34 * The command has the form: 35 * <pre> 36 * get nativeFile textfile <&> 37 * 38 * @param args: the reminder of the command line. 39 * @param sh: the current shell 40 * 41 * @exception JunoException for reporting errors 42 */ 43 44 public void doIt( StringTokenizer args, Shell sh ) 45 throws JunoException 46 { 47 if ( sh.getConsole().isRemote() ) { 48 throw( new JunoException( 49 "Get not implemented for remote consoles." ) ); 50 } 51 String src; 52 String dst; 53 try { 54 src = args.nextToken(); 55 dst = args.nextToken(); 56 } 57 catch (NoSuchElementException e) { 58 throw new BadShellCommandException( this ); 59 } 60 BufferedReader inStream = null; 61 Writer outStream = null; 62 try { 63 inStream = new BufferedReader( new FileReader( src ) ); 64 outStream = new StringWriter(); 65 String line; 66 67 while ((line = inStream.readLine()) != null) { 68 outStream.write( line ); 69 outStream.write( '\n' ); 70 } 71 new TextFile( dst, sh.getUser(), 72 sh.getDot(), outStream.toString() ); 73 } 74 catch (IOException e) { 75 throw new JunoException( "IO problem in get" ); 76 } 77 finally { 78 try { 79 inStream.close(); 80 outStream.close(); 81 } 82 catch (IOException e) {}; 83 } 84 } 85 } 86
|
GetfileCommand |
|