[Ajuda] Gravar ficheiro em formato FLF [Resolvido]

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 é:

[code]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());
	}

}

}[/code]

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?

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…

Boas,

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

[code]//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));[/code]

Mas agradeço a dica :wink: