[Resolvido] Como gerar saídas horizontais no Prompt? (ao invés de verticais)
17 respostas
edsonlopes
Pessoal, estou fazendo um sistema para ser executado via Bash (prompt de comandos), e tenho uma situação que gostaria de listar uma espécie de “Loading”, dessa forma:
C:\>Desejafazeraação?[S/N]SC:\>0%[#####]100%
Onde o “#” seria o progresso do processo. (não cresce nem horizontalmente, nem verticalmente. Só o valor da mesma linha é alterado.)
Onde o “.” seria o progresso do processo. (Não cresce verticalmente “modelo padrão de saída”, pois só cresce horizontalmente, até o processo terminar.)
Como assim: “o que vc está usando do java?” Não entendi a sua pergunta…
Eu estou usando o java normal, em forma de aplicação via linha de comando, pois é um utilitário de administração, então não é necessário uma interface gráfica.
rogelgarcia
Pra nao falar que nao tem jeito…
Desconheço alguma forma de fazer isso…
Usando as API padrão de java…
edsonlopes
Curioso, isso é algo até normal em sistemas Bash… A todo momento, até mesmo para instalar algo via apt-get no Linux eu vejo esse tipo de recurso, mas não tenho idéia de como seria isso em Java… (E quebraria muito o meu galho, pois evitaria aquele lixo de linha na saída da informação)
Assim, vc ta querendo uma forma de mostrar o progresso no formato 0% [##### ] 100% pois no outro formato que vai adicionando os “.” não mostra pro usuario se o progresso real (se está começando ou terminando etc.) é isso?
Poneis123
edsonlopes:
Curioso, isso é algo até normal em sistemas Bash… A todo momento, até mesmo para instalar algo via apt-get no Linux eu vejo esse tipo de recurso, mas não tenho idéia de como seria isso em Java… (E quebraria muito o meu galho, pois evitaria aquele lixo de linha na saída da informação)
Ah ta, vc não quer adicionar linhas novas né, quer alterar a linha existente para ficar uma barra de progresso…
tb num sei se da pra fazer isso não
rogelgarcia
edsonlopes:
Curioso, isso é algo até normal em sistemas Bash… A todo momento, até mesmo para instalar algo via apt-get no Linux eu vejo esse tipo de recurso, mas não tenho idéia de como seria isso em Java… (E quebraria muito o meu galho, pois evitaria aquele lixo de linha na saída da informação)
O problema é que a saida padrão é tratada como OutputStream… num OutputStream nao tem como vc voltar e escrever denovo…
Teria que ter uma API que usasse os recursos do prompt…
edsonlopes
Poneis123:
edsonlopes:
Curioso, isso é algo até normal em sistemas Bash… A todo momento, até mesmo para instalar algo via apt-get no Linux eu vejo esse tipo de recurso, mas não tenho idéia de como seria isso em Java… (E quebraria muito o meu galho, pois evitaria aquele lixo de linha na saída da informação)
Ah ta, vc não quer adicionar linhas novas né, quer alterar a linha existente para ficar uma barra de progresso…
tb num sei se da pra fazer isso não
Exatamente isso que quero… Quero escrever somente em uma linha, ou ela sólida, como no primeiro exemplo, ou ela sendo aumentada horizontalmente, mas não para abaixo (verticalemente)
edsonlopes
Mas existe essa API?
rogelgarcia
Foi o que eu falei no inicio… pra nao falar que nao tem jeito
Eu digo… desconheço alguma forma
edsonlopes
Pior é que eu nem sei como se procurar isso no Google para saber mais a respeito… Já olhei várias formas de I/O do java via Shell, mas nada parecido com o que necessito…
Vou gastar mais um pouco de tempo nesse problema, e se não encontrar nada, vou fazer da forma que dá, e passo para frente…
rogelgarcia
Já te falo… I/O nao é o caminho
Poneis123
o q vc ta usando hj pra mostrar no prompt de comandos os textos? (mesmo que na vertical)?
é que se executar esse método por exemplo: ele adiciona na horizontal:
É desse “in” e “out” que estava falando… Dos meios de entrada e saídas de String do console via Java
edsonlopes
rogelgarcia:
Ops… acho que nao li direito a sua pergunta
Como o colega falou System.out.print ao invés de println… nao resolve?
Putz, mas vai ser eu ignorante assim! Caramba, era mesmo! Resolve sim! rogelgarcia e Poneis123 valeu!
Show de bola, problema resolvido! Uma linha seguida da outra já me resolve esse problema, e não sujo tanto a tela… (Resultado: Cliente feliz!)