Java - scanner类:正确用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - scanner类:正确用法相关的知识,希望对你有一定的参考价值。

我正在使用jSerialComm库和Scanner类。当我尝试运行我的程序时,我收到以下错误:

线程“main”java.lang.NullPointerException中的异常 在java.io.Reader。(未知来源) 在java.io.InputStreamReader。(未知来源) 在java.util.Scanner。(未知来源) 在SerialComm.main(SerialComm.java:44)

指向此行:Scanner scanner = new Scanner(port.getInputStream());

import java.util.Scanner;
import com.fazecast.jSerialComm.*;

public class SerialComm {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    SerialPort serPort[] = SerialPort.getCommPorts();

    int i = 0;

    for(SerialPort port : serPort)
    {
        System.out.println(i++ + " " + port.getSystemPortName());
    }

    Scanner s = new Scanner(System.in);

    int selected = s.nextInt();

    SerialPort port = serPort[selected];


    System.out.println(port.getBaudRate());
    port.setBaudRate(115200);
    System.out.println(port.getBaudRate());
    port.setNumDataBits(8);
    port.setNumStopBits(1);
    port.setParity(SerialPort.NO_PARITY);

    try
    {
        port.openPort();
        System.out.println("Connection is opend");
    }
    catch (Exception ex)
    {
        System.out.println("Chack connection ther is a problem");
    }

    port.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 100, 0);

    Scanner scanner = new Scanner(port.getInputStream());

    while(scanner.hasNextLine())
    {
        try
        {
            String line = scanner.nextLine();
            System.out.println(line);   
        }
        catch(Exception ex)
        {
            System.out.println("halo");
        }
    }
}

}

答案

我已经测试了你的代码,它与我的Arduino工作正常,这是Arduino草图

void setup(){
  Serial.begin(115200);
}

void loop(){
  for(int i = 0;i<1024;i++){
    Serial.println(i);
    delay(1);
  }

  for(int i = 1023;i>0;i--){
    Serial.println(i);
    delay(1);
  }

}

以上是关于Java - scanner类:正确用法的主要内容,如果未能解决你的问题,请参考以下文章

Scanner的基本用法

Scanner的基本用法

Scanner类的简单用法介绍!

Scanner在java中有啥用法怎么用

java中scanner类的用法

java if else 用法