匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 10 年前

java或C程式如何從電腦comport 讀取資料

我需要一支程式他要能從電腦comport 讀取資料

請問要怎麼做呢 麻煩高手幫幫忙

需要C程式碼 或是 java程式碼

拜託高手幫幫

2 個解答

評分
  • 爵士
    Lv 5
    10 年前
    最佳解答

    參考程式碼:

    import java.io.*;

    import java.util.*;

    import javax.comm.*;

    public class SimpleRead implements Runnable, SerialPortEventListener {

    static CommPortIdentifier portId;

    static Enumeration portList;

    InputStream inputStream;

    SerialPort serialPort;

    Thread readThread;

    public static void main(String[] args) {

    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements()) {

    portId = (CommPortIdentifier) portList.nextElement();

    if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {

    if (portId.getName().equals("COM1")) {

    // if (portId.getName().equals("/dev/term/a")) {

    SimpleRead reader = new SimpleRead();

    }

    }

    }

    }

    public SimpleRead() {

    try {

    serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);

    } catch (PortInUseException e) {System.out.println(e);}

    try {

    inputStream = serialPort.getInputStream();

    } catch (IOException e) {System.out.println(e);}

    try {

    serialPort.addEventListener(this);

    } catch (TooManyListenersException e) {System.out.println(e);}

    serialPort.notifyOnDataAvailable(true);

    try {

    serialPort.setSerialPortParams(9600,

    SerialPort.DATABITS_8,

    SerialPort.STOPBITS_1,

    SerialPort.PARITY_NONE);

    } catch (UnsupportedCommOperationException e) {System.out.println(e);}

    readThread = new Thread(this);

    readThread.start();

    }

    public void run() {

    try {

    Thread.sleep(20000);

    } catch (InterruptedException e) {System.out.println(e);}

    }

    public void serialEvent(SerialPortEvent event) {

    switch(event.getEventType()) {

    case SerialPortEvent.BI:

    case SerialPortEvent.OE:

    case SerialPortEvent.FE:

    case SerialPortEvent.PE:

    case SerialPortEvent.CD:

    case SerialPortEvent.CTS:

    case SerialPortEvent.DSR:

    case SerialPortEvent.RI:

    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:

    break;

    case SerialPortEvent.DATA_AVAILABLE:

    byte[] readBuffer = new byte[20];

  • 10 年前

    import java.util.*;

    class example {

    public static void main (String[] args) {

    Scanner in = new Scanner (System.in);

    System.out.println("請輸入");

    String str = in.next();

    System.out.println(str);

    }

    }

    不知道你說的是不是這個

    in.next()讀取字

    in.nextInt()讀取整數

還有問題?馬上發問,尋求解答。