Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

NameException

InputStreamReader Linux vs Windows

Mensagens Recomendadas

NameException

Boas

Venho solicitar a vossa ajuda numa questão. Preciso de ler determinados dados de input em JAVA, pelo que tenho o seguinte código:

  try{

                InputStreamReader isr = new InputStreamReader(System.in);
                char[] buffer = new char[128];
int a = isr.read(buffer, 0, buffer.length);

System.out.println("*" + new String(buffer,0,a-2) + "*");
}	
catch(Exception e){
e.printStackTrace();
}

Mas este código apenas funciona correctamente em ambiente windows, mas não em Linux.

Ou seja, para ler a palavra "olá" em windows, retorna

*olá*

em linux retorna

*ol*

Se for alterada a linha

System.out.println("*" + new String(buffer,0,a-2) + "*");

para

System.out.println("*" + new String(buffer,0,a-1) + "*")

funciona correctamente em linux e não em windows.  🤔

Desde já o meu obrigado

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NameException

Obrigado pelas indicações...

Aqui fica a solução que adoptei:

	String thisLine = "";
	try { 
	   BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
	   while ((thisLine = br.readLine()) != null) { 
	      break; 
	   }  
	 }
	 catch (IOException e) { e.printStackTrace(); } 
	 System.out.println(thisLine);

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.