001 /* 002 * $Id: Console.java,v 1.1.1.1 2002/06/05 21:56:32 root Exp $ 003 * 004 * Developed for "Rethinking CS101", a project of Lynn Andrea Stein's AP Group. 005 * For more information, see <a href="http://www.ai.mit.edu/projects/cs101/">the 006 * CS101 homepage</a> or email <las@ai.mit.edu>. 007 * 008 * Copyright (C) 1998 Massachusetts Institute of Technology. 009 * Please do not redistribute without obtaining permission. 010 */ 011 package cs101.io; 012 import java.io.*; 013 014 /** 015 * A helper class for Java Console IO. Contains appropriate console read 016 * and print methods. 017 * 018 * <P>Exists mostly to make System.In palatable by transforming it into a 019 * readLine-able BufferedReader. Out is included for completeness 020 * and uniformity. 021 * 022 * <P>Copyright 1998 Massachusetts Institute of Technology 023 * 024 * @see java.lang.System 025 * 026 * @author Lynn Andrea Stein, las@ai.mit.edu 027 * @version $Id: Console.java,v 1.1.1.1 2002/06/05 21:56:32 root Exp $ 028 * 029 */ 030 public class Console { 031 032 /** A console Reader; e.g., allows you to readLine() from the console. */ 033 private static final BufferedReader in = 034 new BufferedReader(new InputStreamReader(System.in)); 035 036 /** A console Writer; e.g., allows you to println() to the console */ 037 private static final PrintWriter out = 038 new PrintWriter ( System.out , true); 039 040 /** The special console Writer for error messages. */ 041 private static final PrintWriter err = 042 new PrintWriter( System.err , true); 043 044 /** Read a line from Console. The String returned is not terminated 045 * with a newline. */ 046 public static final String readln() { 047 try { 048 return Console.in.readLine(); 049 } catch (java.io.IOException ioe) { 050 // Something strange has happened. Report error and continue. 051 Console.err.println("Console.readLine() threw IOException. Has System.in been redirected?"); 052 return ""; 053 } 054 } 055 056 /** Write a line to Console. The String writen is concatenated with a 057 * newline. */ 058 public static final void println(String s) { 059 Console.out.println(s); 060 } 061 062 /** Write a blank line to Console. */ 063 public static final void println() { 064 Console.out.println(); 065 } 066 067 /** Write a line to Console. The String written is not concatenated with 068 * a newline. */ 069 public static final void print(String s) { 070 Console.out.print(s); 071 Console.out.flush(); 072 } 073 074 /** 075 * Prevent instantiation 076 */ 077 private Console() {} 078 } 079 080 /* Comments: 081 * 082 * History: 083 * $Log: Console.java,v $ 084 * Revision 1.1.1.1 2002/06/05 21:56:32 root 085 * CS101 comes to Olin finally. 086 * 087 * Revision 1.10 1999/07/28 22:22:04 las 088 * Added files providing utility classes for stringTransformer pset 089 * (mostly interfaces concerning connectors). Also modified Console to 090 * fix a bug in print (i.e., needed to force flush()). 091 * 092 * Revision 1.9 1999/01/25 15:30:03 tparnell 093 * fix javadoc to reflect file movement between packages 094 * 095 * Revision 1.8 1998/08/11 22:30:54 tparnell 096 * added println() [no args] 097 * 098 * Revision 1.7 1998/07/28 18:55:54 tparnell 099 * removed refrences to (now defunct) java.io.FriendlyReader 100 * 101 * Revision 1.6 1998/07/24 17:07:29 tparnell 102 * Placate new javadoc behavior 103 * 104 * Revision 1.5 1998/07/22 20:24:46 tparnell 105 * made in, out, and err private 106 * 107 * Revision 1.4 1998/07/22 15:37:13 tparnell 108 * moved to cs101.io 109 * 110 * Revision 1.3 1998/07/21 19:24:54 tparnell 111 * added private Console() 112 * 113 * Revision 1.2 1998/07/20 21:57:02 tparnell 114 * Added readLine(), print(), and println() 115 * 116 * Revision 1.1 1998/06/08 18:11:52 tparnell 117 * added files from Lynn 118 * 119 */ 120