当前位置: 首页 > 知识库问答 >
问题:

Java - 扫描程序类:正确的用法

阚乐湛
2023-03-14

我使用jSerialComm库和扫描仪类。当我尝试运行我的程序时,我得到以下错误:

线程“main”中出现异常Java . lang . nullpointerexception < br >位于java.io.Reader .(未知源)< br >位于java.io.InputStreamReader .(未知源)< br >位于java.util.Scanner .(未知源)< br >位于serial comm . main(serial comm . 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");
        }
    }
}

}

共有1个答案

司允晨
2023-03-14

我已经测试了你的代码,它在我的Arduino上运行良好,这是Arduinos草图

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);
  }

}
 类似资料:
  • 我正在为课堂做作业。由于某种原因,程序完全跳过了用户应该键入变量的部分。我想不出任何理由为什么它会以这种方式运行,因为我的其余代码位于部分之后(它要求诸如和类型之类的东西)工作正常且有序。

  • 如果我们用扫描仪进行控制台输入,我们有两种方法来编写输入循环 我相信第二个更正确,因为在hasNextLine()javadoc中提到了这个方法正在等待新的行。但为什么第一个也是工作的,等待一个新的行没有suchelementexception?

  • 问题内容: 我正在使用嵌套循环从字符串行(从文本文件)中提取数字,如下所示: 问题在于此代码将跳过所有空格,但是我也需要使用这些“空格”。那么可以返回空格还是我需要使用其他东西? 我的文本文件可能包含以下内容: 这些空白行各包含1条,这就是我需要返回的行。 问题答案: 使用扫描仪和方法,您将找到解决方案,因为这将使您能够捕获空白行或空白行。

  • 问题内容: 我刚刚了解了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争。我知道StringTokenizer和String.Split仅适用于字符串,那么为什么要对字符串使用扫描器?扫描仪是否仅打算一站式进行拆分? 问题答案: 他们本质上是课程的马。 设计用于需要解析字符串,提取不同类型数据的情况。它非常灵活,但是可以说它并没