扫描仪输入问题

py49o6xq  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(425)

我正在编写一个代码,从连接到计算机的一个“coms”的辐射计传感器获取数据,要获取测量值,我必须与该传感器通信,抛出“com7”,并编写命令“gi”,以从命令用户界面获取类似“9.919e-08”的值。
现在我有一个问题的代码,它是给我的错误“没有行发现”

这是密码

  1. package reading_data;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.PrintWriter;
  5. import java.util.Scanner;
  6. import com.fazecast.jSerialComm.SerialPort;
  7. public class main {
  8. public static void main(String[] args) throws IOException, InterruptedException {
  9. SerialPort sp= SerialPort.getCommPort("COM7");
  10. sp.setComPortParameters(115200, 8, 1, 0);
  11. sp.setComPortTimeouts(SerialPort.TIMEOUT_WRITE_BLOCKING, 0, 0);
  12. sp.openPort();
  13. if(sp.isOpen()) {
  14. System.out.println("Port is open");
  15. PrintWriter output=new PrintWriter(sp.getOutputStream());
  16. Scanner data=new Scanner(sp.getInputStream());
  17. output.println("gi");
  18. String ssss=data.nextLine();
  19. System.out.println("--++++---->"+ssss);
  20. }else {
  21. System.out.println("Port is not open");
  22. }
  23. sp.closePort();
  24. }
  25. }

这是我得到的错误

  1. Port is open
  2. Exception in thread "main" java.util.NoSuchElementException: No line found
  3. at java.util.Scanner.nextLine(Unknown Source)
  4. at reading_data.main.main(main.java:26)

你能告诉我哪里错了吗?
提前谢谢

qzlgjiam

qzlgjiam1#

试着这样做:

  1. output.flush();
  2. if(data.hasNextLine()) {
  3. String ssss=data.nextLine();
  4. }

如果没有下一条线,就不要打下一条线。编辑:需要刷新。

相关问题