import javax.microedition.io.StreamConnection; import java.io.*; /** * * @author Steffen */ public class TerminalIOStream { InputStream inStream; OutputStream outStream; InputStreamReader inStreamReader; OutputStreamWriter outStreamWriter; StreamConnection connection; boolean setUp = false; /** Creates a new instance of TerminalOutputStream */ public TerminalIOStream(StreamConnection connection) { try { inStream = connection.openInputStream(); inStreamReader = new InputStreamReader(inStream); outStream = connection.openOutputStream(); outStreamWriter = new OutputStreamWriter(outStream, "iso-8859-1"); setUp = true; this.connection = connection; } catch (IOException ex) { ex.printStackTrace(); } } public synchronized void write(char c) { if (setUp) { try { outStreamWriter.write(c); outStreamWriter.flush(); } catch (IOException ex) { ex.printStackTrace(); } } } public synchronized void write(String s) { if (setUp) { try { outStreamWriter.write(s); outStreamWriter.flush(); } catch (IOException ex) { ex.printStackTrace(); } } } public synchronized char read() { int inChar = -1; if (setUp) { try { if (inStream.available() > 0) { inChar = inStreamReader.read(); return (char) inChar; } } catch (Exception e) { e.printStackTrace(); } } return (char) 0; } public synchronized boolean isEmpty() { try { return (!(setUp && inStream.available() == 0)); } catch (Exception e) { e.printStackTrace(); } return true; } public void close() { if (setUp) { try { inStreamReader.close(); inStreamReader = null; inStream.close(); inStream = null; outStreamWriter.close(); outStreamWriter = null; outStream.close(); outStream = null; connection.close(); connection = null; } catch (Exception e) { e.printStackTrace(); } } } }