Conectar em um porta USB[RESOLVIDO]

Senhores sou novo no java mas estou gostando muito e hoje preciso da ajuda de todos, ja procurei no fórum mas nao achei algo esclarecedor ou próximo do que preciso como sou muito iniciante preciso de ajuda para fazer um programa que conecte em um porta usb e envie comandos eu já fiz um que envia os comando por cmd mas agora preciso ter uma interação com com a porta ou seja de vier uma determinada resposta preciso executar um comando.
senhores qualquer ajuda e bem vinda fico grato aos que puderem me ajudar !!!

Vc vai precisar usar a API RXTX. Tem bastante coisa aqui no forum sobre isso:
http://www.guj.com.br/search?q=rxtx
INCLUSIVE UM TÓPICO SEU JÁ PERGUNTANDO SOBRE ISSO…
E aqui segue um tutorial de start:
https://www.devmedia.com.br/utilizando-a-api-rxtx-para-manipulacao-da-serial-parte-i/6722
Tmq pesquisar a respeito ou explicar melhor q problema está tendo.

Poxa muito obrigado realmente eu abri um topico mas nao tive resposta nele obrigado vou ler testar e postar minhas duvidas aqui !!!

Senhores estou tentando ler e escrever dados de um porta USB bom eu ja consigo identificar as portas e ler mas nao consigo escrever alguem pode me ajudar ? eu estou usando o javacomm pois o rxtx segundo me falaram esta obsoleto bom para identificar as partas estou fazendo assim , por favor meu codigo e bem inicial sou novo no java:

String portaCom = "COM8";
SerialPort[] portNames = SerialPort.getCommPorts();
for (SerialPort portName : SerialPort.getCommPorts()) {
     System.out.println(portName.getSystemPortName());
}

para ler a porta estou fazendo assim:

SerialPort comPort = SerialPort.getCommPorts()[2];
comPort.openPort();
comPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
InputStream in = comPort.getInputStream();
try {
        for (int j = 0; j < 1000; ++j) {
            System.out.print((char) in.read());
        }
        in.close();
} catch (Exception e) {
        e.printStackTrace();
}
comPort.closePort();

mas nao consigo gravar dados nao tenho ideia de como fazer tentei usar o outputstream mas nao consegui alguem pode me dar um luz um material para eu ler ou algo do tipo usado pela api javacomm ja li aqui do forum e maioria e so para ler dados e nao gravar !!!

despois de muito pesquisar consegui !!!

Senhore boa noite eu consegui enviar os dados para porta USB e receber um retorno, agora eu preciso quebrar este retorno por linha eu ja tentei com split mas nao esta dando certo sera que alguem pode me ajudar veja o codigo:

for (int j = 0; j <= 114; j++) {
char lerModem = (char) in.read();
String result = String.valueOf(lerModem);
System.out.print(result);

        }

a saida em texto fica assim:

Manufacturer: huawei
Model: E173
Revision: 21.045.06.00.00
IMEI: 860528007309866
+GCAP: +CGSM,+DS,+ES

OK
tem como eu pegar essa saida que ja esta em uma string e colocar em um array separando por linha para eu poder separar a informaçao que eu quero ?

tentou com split("\n")
?

Bom dia, sim tentei o problema que cada interação do for traz um carácter e ai ele coloca um em cada linha !

Agora n entendi nada.

Qq o for tem a ver?
Se o resultado acima é oq vc tem após o for, pq n faz o split sobre isso?

https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html

Chara eu consegui mas acho que o arrayy ficou muito grande veja como ficou:

SerialPort comPort = SerialPort.getCommPorts()[2];
comPort.openPort();
comPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
InputStream in = comPort.getInputStream();

        for (int j = 0; j <= 114; j++) {
            char lerModem = (char) in.read();
            result = String.valueOf(lerModem);
            //System.out.print(result);
            String[] dadosModem = result.split("\\r", 0);
            System.out.print(Arrays.toString(dadosModem));
        }
        in.close();
    
    comPort.closePort();

o resultado:

COM6
COM7
COM8
[][
][M][a][n][u][f][a][c][t][u][r][e][r][:][ ][h][u][a][w][e][i][][
][M][o][d][e][l][:][ ][E][1][7][3][][
][R][e][v][i][s][i][o][n][:][ ][2][1][.][0][4][5][.][0][6][.][0][0][.][0][0][][
][I][M][E][I][:][ ][8][6][0][5][2][8][0][0][7][3][0][9][8][6][6][][
][+][G][C][A][P][:][ ][+][C][G][S][M][,][+][D][S][,][+][E][S][][
][][
][O][K][][
]CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)