Fixar Tamanho Campos

4 respostas
F

Pessoal estou precisando gravar um arquivo texto com tamanhos de campos fixos como posso fazer isso com PrintWriter? Alguém pode me ajudar?

4 Respostas

M

eu ja fiz isso, com um método q recebe a String q tu quer gravar, e retorna ela do tamanho q tem q ser, adicionando espaços a esquerda se for menor... exemplo:

public String ajeitaString( String msg ) throws MinhaException
{
   if ( msg.length() < 20 )
      throw new MinhaException;

    final int tamanhoMaximo = 20; //20 chars
   	
    int tamanhoRestante = ( tamanhoMaximo - msg.length() );
	
    for ( int i = 0; i < tamanhoRestante; i++ )
        msg += " ";
		
    return msg;
}
A

kra, não entendi mto bem a sua pergunta…
se puder ser mais claro, ou postar o código, a gente tenta ajudar…

[]'s

B

“andersonra”:
kra, não entendi mto bem a sua pergunta…
se puder ser mais claro, ou postar o código, a gente tenta ajudar…

[]'s

è verdade , nao deu pra entender muita coisa nao !

S

Olá,

aí vai um método que se vale de StringBuffer para definir o tamanho:

public static String tamanhoFixo(String in, int len) {

      StringBuffer sb = new StringBuffer();
      sb.append(in);
      sb.setLength(len);

      return sb.toString().replace('\u0000', ' ');
    }

    public static void main(String[] args) {

      System.out.println(tamanhoFixo("a", 5)+tamanhoFixo("b", 3));
      System.exit(1);
    }

variando a ordem dos metodos append e setLength, podemos inserir espaços (fixado no código, mas também pode ser alterado para passar por parametro) na frente (alinhar à direita), frente e atrás (meio), …
Só nossa (falta de) criatividade é que poderá atrapalhar. :o)

Criado 9 de setembro de 2004
Ultima resposta 11 de set. de 2004
Respostas 4
Participantes 5