Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bravanet

Problema com o tipo Byte[]

Recommended Posts

Pessoal, sou novo em JAVA por isso estou com um problema...

 

byte[] bufferLeitura = new byte[532];

 

Existe alguma forma de deixar este tamanho variavel, automatico...?

 

Estou recebendo da porta serial, o máximo que o equipamento envia é 532bytes, se o coletor envia 100 bytes os outros 432 bytes vem com sujeira.

 

Segue o código abaixo, peguei este exemplo no GUJ

 

public void serialEvent(SerialPortEvent ev){
	  //  File arquivo = new File("arquivo.txt");
		//FileOutputStream grava = new FileOutputStream(arquivo);   
		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[24];
			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);
					//escreveDados(Dadoslidos);
				}
			} catch (Exception e) {
				System.out.println("Erro durante a leitura: " + e );
			}
		  //  System.out.println("n.o de bytes lidos : " + nodeBytes );
			break;
		}
	}

Obrigado,

 

Júnior

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nunca tentei fazer isso, mas tente assim:

 

byte[] bufferLeitura = new byte[];

 

Provavelmente não funcione.

Se não funcionar voce poderá limitar a string pelo tamanho dela, fica mais ou menos assim:

 

tamanho = bufferLeitura.length;
String Leitura = bufferLeitura.substring(1,tamanho);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, se eu não me engano, existe uma maneira de informar o intervalo que você deve ler de uma entrada no método read.

 

Flwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.