CoreIO.java
package fi.jyu.mit;
import java.io.*;
/**
* <p>Title: CoreIO </p>
* <p>Description: Yksinkertainen IO-kirjasto joka osaa tulostaa ä:n
* myös DOS-ikkunaan jos java käynnistetään komennolla
* <pre>java -DOEM luokka</pre></p>
* <p>Copyright: Copyright Vesa Lappalainen(c) 2002</p>
* <p>Company: jyu</p>
* @author Vesa Lappalainen
* @version 1.0
*/
public class CoreIO {
private static BufferedReader myIn = initMyIn();
private static BufferedWriter myOut = initMyOut();
private static final String OEM = "Cp437";
private static boolean isWinConsole() {
String osName = System.getProperty("os.name");
String isOEM = System.getProperty("OEM");
return ( osName != null && osName.startsWith("Windows") && isOEM != null );
}
private static BufferedReader initMyIn() {
if ( isWinConsole() ) try {
return new BufferedReader(new InputStreamReader(System.in,OEM));
}
catch ( UnsupportedEncodingException e) { }
return new BufferedReader(new InputStreamReader(System.in));
}
private static BufferedWriter initMyOut() {
if ( isWinConsole() ) try {
OutputStreamWriter out = new OutputStreamWriter(System.out, OEM);
BufferedWriter bout = new BufferedWriter(out);
return bout;
// System.setOut(new PrintStream(bout));
}
catch ( UnsupportedEncodingException e) { }
return new BufferedWriter(new OutputStreamWriter(System.out));
}
/** Lukee yhden rivin syötön
* @param prompt Käyttäjälle tulostettava kysymys
* @return Käyttäjän syöttämä jono
*/
public static String readln(String prompt) {
print(prompt);
try {
String s = myIn.readLine();
return s;
}
catch (IOException e) {
return "";
}
}
/** Palauttaa virran joka ymmärtää ä:t
* @return Virta joka ymmärtää ä-kirjaimet systeemin mukaan
*/
public static BufferedWriter os() {
return myOut;
}
/** Tulostaa jonon ja rivinvaihdon
* @param s Tulostettava jono
*/
public static void println(String s) {
try {
myOut.write(s);
myOut.newLine();
myOut.flush();
}
catch ( IOException e ) { e.printStackTrace(System.err); }
}
/** Tulostaa jonon muttei rivinvaihtoa
* @param s Tulostettava jono
*/
public static void print(String s) {
try {
myOut.write(s);
myOut.flush();
}
catch ( IOException e ) { e.printStackTrace(System.err); }
}
}