官方文档有错误,运行报错:gnu.io.RXTXPort cannot be cast to gnu.io.ParallelPort
修改后的运行
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.RXTXPort;
import java.io.IOException;
import java.io.OutputStream;
//下面是一个代码示例,展示了如何使用并行端口进行通信。
public class ParallelCommunication {
private static OutputStream outputStream;;
private static RXTXPort parallelPort;
private static CommPortIdentifier port;
// 要打开的串口名称
public static final String PARALLEL_PORT = "COM3";
//串口类型
public static final String[] PORT_TYPE = { "Serial Port", "Parallel Port" };
//要发送的信息
private static String printerCodes = "<n>HelloWorld!<p>";
public static void main(String[] args) {
System.out.println("Started test....");
try {
//通过标识符获取端口对象
port = CommPortIdentifier.getPortIdentifier(PARALLEL_PORT);
System.out.println("\nport.portType = " + port.getPortType());
System.out.println("port type = "
+ PORT_TYPE[port.getPortType() - 1]);
System.out.println("port.name = " + port.getName());
// 打开串口 open(App name, timeout)
parallelPort = (RXTXPort) port.open("CommTest", 50);
outputStream = parallelPort.getOutputStream();
//转化成byte[]
byte[] byteArray=printerCodes.getBytes("UTF-8");
System.out.println("Write...");
outputStream.write(byteArray);
System.out.println("Flush...");
outputStream.flush();
System.out.println("Close...");
outputStream.close();
} catch (NoSuchPortException nspe) {
System.out.println("\nPrinter Port LPT1 not found : "
+ "NoSuchPortException.\nException:\n" + nspe + "\n");
} catch (PortInUseException piue) {
System.out.println("\nPrinter Port LPT1 is in use : "
+ "PortInUseException.\nException:\n" + piue + "\n");
}
catch (IOException ioe) {
System.out.println("\nPrinter Port COM3 failed to write : "
+ "IOException.\nException:\n" + ioe + "\n");
} catch (Exception e) {
System.out
.println("\nFailed to open Printer Port COM3 with exeception : "
+ e + "\n");
} finally {
if (port != null && port.isCurrentlyOwned()) {
parallelPort.close();
}
System.out.println("Closed all resources.\n");
}
}
}