import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import javax.comm.CommPortIdentifier;
import javax.comm.NoSuchPortException;
import javax.comm.SerialPort;public class Comm
{  public void run()
  {
      readSMS();
  }  // Search for a modem
  public void readSMS()
  {
    CommPortIdentifier cpid = null;
    SerialPort sp = null;
    OutputStream outer = null;
    InputStream inner = null;
    try {
cpid = CommPortIdentifier.getPortIdentifier( "COM4" ) ;
} catch (NoSuchPortException e) {
e.printStackTrace();
}            try {
sp = (SerialPort) cpid.open("hgbdelphi", 100);
          sp.setSerialPortParams(19200,sp.DATABITS_8,sp.STOPBITS_1,sp.PARITY_NONE);
outer = sp.getOutputStream();
inner = sp.getInputStream();
  dialOut(inner, outer);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 }  public void dialOut(InputStream inner, OutputStream outer) throws IOException
  {
 outer.write("AT+CMGF=0\r".getBytes());
 outer.write("AT+CNMI=1,1,0,0,1\r".getBytes()); 
     outer.write("AT+CMGL=4\r".getBytes());     System.out.print("Reading response from InputStream - ");
     int avail = inner.available();
     System.out.println(avail + " bytes available:");
     byte[] response = new byte[avail];
     StringBuffer strbuf = new StringBuffer();
     inner.read(response, 0, avail);
     for (int i = 0; i < avail; i++)
     {
        strbuf.append((char)response[i]);
        System.out.println(response[i]+" : "+(char)response[i]);
      }
      System.out.println("readStr:"+strbuf.toString());
  }
  
  public static void main( String[] args )
  {
    Comm c = new Comm() ;
    c.run();
  }
}
我的手机的收件箱,发什箱,草稿箱中都存有短信,但这样去总读不出,控制台总是:
Reading response from InputStream - 0 bytes available:
readStr:请问java可以读sim卡中的短信吗?