Dúvidas sobre comunicação pela porta Serial

Boa noite a todos,

Estou com o seguinte dúvida, como faço para receber uma String pela porta serial? pois tenho o seguinte código, ele funciona, mas cada caracter da minha mensagem ele exibe em um linhas diferentes (como se tivesse um entre entre eles).

Muito obrigado, e segue o código abaixo:

//leitura de dados na serial 
	public void LerDados(){

		if (Leitura == true){ 
			try { 
				entrada = porta.getInputStream();				
				System.out.println("FLUXO OK!"); 
				
			} catch (Exception e) { 
				System.out.println("Erro.STATUS: " + e ); 
				System.exit(1); 
			} 
			try { 
				porta.addEventListener(this); 
				System.out.println("SUCESSO. Porta aguardando..."); 
			} catch (Exception e) { 
				System.out.println("Erro ao criar listener: "); 
				System.out.println("STATUS: " + e); 
				System.exit(1); 
			} 
			porta.notifyOnDataAvailable(true); 
			try { 
				threadLeitura = new Thread(this); 
				threadLeitura.start(); 
			} catch (Exception e) { 
				System.out.println("Erro ao iniciar leitura: " + e ); 
			} 
		} 
	} 
//gerenciador de eventos de leitura na serial 
	public void serialEvent(SerialPortEvent ev){ 
		switch (ev.getEventType()) { 
		case SerialPortEvent.BI: 
		case SerialPortEvent.OE: 
		case SerialPortEvent.FE: 
		case SerialPortEvent.PE: 
		case SerialPortEvent.CD: 
		case SerialPortEvent.CTS: 
		case SerialPortEvent.DSR: 
		case SerialPortEvent.RI: 
		case SerialPortEvent.OUTPUT_BUFFER_EMPTY: 
			break; 
		case SerialPortEvent.DATA_AVAILABLE: 
			byte[] bufferLeitura = new byte[20]; 
			try { 
				while (entrada.available() > 0 ) { 
					nodeBytes = entrada.read(bufferLeitura); 
				} 
				String Dadoslidos = new String(bufferLeitura); 
				if (bufferLeitura.length == 0) { 
					System.out.println("Nada lido!"); 
				} else if (bufferLeitura.length == 1 ){ 
					System.out.println("Apenas um byte foi lido!"); 
				} else { 
					System.out.println(Dadoslidos); 
				} 
			} catch (Exception e) { 
				System.out.println("Erro durante a leitura: "  + e ); 
			} 
			//System.out.println("NodeBytes: " + nodeBytes );
		} 
	} 

Ahem…

Quem está colocando o \n é você… Dá só uma lida na linha em que você imprime os dados lidos:

System.out.print[b]ln/b;

Troque-a por:
System.out.print(Dadoslidos);

E deixe que o aplicativo que está do outro lado do fio te envie o \n por conta própria.

Eu geralmente faço a leitura direta da serial, em uma segunda thread, ao invés de esperar por eventos. Me parece ser o ideal para o seu caso também, já que você não se preocupa com outros eventos que não o DATA_AVAILABLE. Você pode ler o stream da serial como outro stream qualquer.