[Ajuda] Gravar ficheiro em formato FLF [Resolvido]

2 respostas
S

Boas,

Sou novo no fórum e comecei à pouco tempo a programar em Java, para aprender...

Agora, em relação à minha questão, estou a criar uma Classe para poder criar e gravar informação num ficheiro FLF (Fixed Length File) mas não estou a conseguir...

O código que tenho é:

package formabase.pelican.clientes;

import java.io.*;


public class EscritaFLF {
	
	private String _nome;
	private String _morada;
	private String _telf;
	
	public EscritaFLF() {
		_nome = "Não Definido";
		_morada = "Não Definido";
		_telf = "Não Definido";

	}
	
	public void setNome (String nome) {
		_nome = nome;
	}
	
	public void setMorada (String morada) {
		_morada = morada;
	}
	
	public void setTelefone (String telefone) {
		_telf = telefone;
	}
	
	public EscritaFLF (String nome, String morada, String telefone, String email) {
		_nome = nome;
		_morada = morada;
		_telf = telefone;

	}
	
	public String getNome () {
		return _nome;
	
	}
	
	public String getMorada () {
		return _morada;
	}
	
	public String getTelefone () {
		return _telf;
	}
	
	public void writeToDataFile() {
		try {
			File fTargetFolder = new File("./datafiles");
			if (!fTargetFolder.exists())
				fTargetFolder.mkdir();
		
			File fTarget = new File("./datafiles/Passaportes.flf");
			FileWriter fw = new FileWriter(fTarget, true);
			PrintWriter pw = new PrintWriter(fw);

			pw.print(_nome);
			pw.print(_morada);
			pw.println(_telf);
			pw.flush();
			pw.close();
		
		} catch (Exception e) {
			System.out.println("Erro: " + e.getMessage());
		}
	
	}

}

O pretendido é ter um espaço de 50 para a primeira string, 100 para a segunda e 20 para a terceira... Alguém me pode ajudar por favor?

2 Respostas

Markus_Alemao

Ola …

Seguinte voce precisa definir um tamanho fixo para a String sendo que a String possui tamanho variavel, entao primeiramente voce precisa saber o tamanho da String que é obtido pelo metodo length()

String texto = "texto"; //retorna o tamanho da String texto texto.length();

Dessa forma voce obtem o tamanho da String agora basta saber quantos espacos em branco deve ser adicionado a mesma para que ela possua o tamanho pretendido…

//tamanho maximo da String
final int tamanho = 50;
//descobrir o numero de caracteres que faltam para o tamanho 
int espacosAseremAdicionados = tamanho - texto.length();

agora basta voce adicionar o numero de espacos em branco definido na variavel espacosAseremAdicionados …

texto.concat(" ");

é isso …falta só adicionar um laço para adicionar todos os espacos na String mas isso fica a cargo de você tenta ai e qualquer coisa pode pedir…

S

Boas,

Desde já agradeço a resposta. Por acaso resolvi de maneira parecida, deixo aqui o codigo:

//Iniciar Strings de controlo (textoNome=50, textoMorada=100, textoTelf=20
			String textoNome = "                                                  ";
			String textoMorada = "                                                                                                    ";
			String textoTelf = "                    ";
			
			//Variavel de controlo para obter 50 espaços
			int i = 50 - _nome.length();
			pw.print(_nome + textoNome.substring(0,i));
			
			//Variavel de controlo para obter 100 espaços
			int j = 100 - _morada.length();
			pw.print(_morada + textoMorada.substring(0,j));
			
			//Variavel de controlo para obter 20 espaços
			int k = 20 - _telf.length();
			pw.println(_telf + textoTelf.substring(0,k));

Mas agradeço a dica ;)

Criado 1 de abril de 2011
Ultima resposta 2 de abr. de 2011
Respostas 2
Participantes 2