Melhor sintaxe para escrita e leitura de arquivos

Bom dia,

Estou iniciando em java, na criação de programação em geral na real, e queria uma ajuda do pessoal para achar a melhor sintaxe para escrita e leitura de um arquivo, sendo o meu objetivo atualizar este arquivo somente com o celular (Android) e apenas ler no PC, as váriaveis que preciso guardar é o seguinte

String nomeServico
Date dataDeInicio
Date dataDeTermino
int porcentagem
String[] funcionarios
String[] pendencias

Qual seria a melhor forma de escrever e ler tal classe?

Criar uma classe servicos.java com essas variavéis e uma classe carregaServicos que carrega as variaveis dentro da main?
É necessário passar todas as variáveis toda vez que quiser escrever o arquivo?

vlws

bem vindo ao forum!!!
Cara… coloque seu código na tag CODE. pls

Não era um código era só um exemplo do que eu queria salvar, mas eu vi que estava pulando alguns passos, eu preciso primeiro descobrir o melhor jeito de armazenar os dados que eu quero.
Isso tem de ser no feeling, depois de um tempo de programaçao e planejamento ou tem como ler em algum lugar sobre como fazer?

Eu quero essencialmente fazer o acompanhamento da minha obra e o esquema deve ser o seguinte:

apartamento
-> servicos

  • -> porcentagemConcluida
  • -> dataInicio
  • -> dataFim
  • -> funcionarios

O melhor jeito de se fazer seria fazer a classe apartamento como uma matriz de 2 dimensoes, sendo a primeira para chamar o apartamento e a segunda para chamar o serviço?

E tenho como fazer como em C++ o #DEFINE pras constantes?

Ex.: chamar apartamento[802][REBOCO] ao inves de apartamento[16][5]

vlw pela resposta

Só atualizando minha situação, consegui carregar as variáveis do arquivo e inicializar a classe, se possivel gostaria que dessem uma olhada pra ver se tem alguma parte da programacao que estou fazendo que pode dar problema no futuro.
E não consegui usar o constructor do array, não tem como? É mais simples nesse loop mesmo?

apples.java

[code]import java.util.;
import java.io.
;

class apples{
public static void main(String[] args){

	final int reboco = 0;
	final int contrapiso = 0;
	
	int i;
	int j;
	int k;
	int p;
	
	//inicializa os apartamentos
	servicoApartamento[][] servicos = new servicoApartamento[24][24];
	for(i = 0; i < servicos.length; ++i){
		for(j = 0; j < 24; ++j){
			servicos[i][j] = new servicoApartamento();
		}
	}
	
	//carrega apartamentos
	String[] temp = new String[20];
	String[] temp2	= new String[20];
	try{
		  // Open the file that is the first 
		  // command line parameter
		  FileInputStream fstream = new FileInputStream("teste.txt");
		  // Get the object of DataInputStream
		  DataInputStream in = new DataInputStream(fstream);
		  BufferedReader br = new BufferedReader(new InputStreamReader(in));
		  String strLine;
		  //Read File Line By Line
		  while ((strLine = br.readLine()) != null)   {
			  temp = strLine.split(",");
			  System.out.println (strLine);
			  Arrays.fill(temp2, "");
			  
			  i = Integer.parseInt(temp[0]);
			  p = servicos[i][0].servicoIndex(temp[1]);
			  
			  servicos[i][p].setServico(temp[1]);
			  
			  servicos[i][p].setDataInicio(Integer.parseInt(temp[2].substring(0, 2)), Integer.parseInt(temp[2].substring(2, 4)), Integer.parseInt(temp[2].substring(4, 8)));
			  servicos[i][p].setDataFim(Integer.parseInt(temp[3].substring(0, 2)), Integer.parseInt(temp[3].substring(2, 4)), Integer.parseInt(temp[3].substring(4, 8)));
			  
			  j = 0;
			  k = 0;
			  for( k = 4; k < temp.length; ++k){
				  temp2[j] = temp[k];
				  j++;
			  }
			  
			  servicos[i][p].setFuncionarios(temp2);
		  }
		  //Close the input stream
		  in.close();
		    }catch (Exception e){//Catch exception if any
		  System.err.println("Error: " + e.getMessage());
	    }	
	
	//testando
	for(i = 0; i < servicos.length; ++i){
		for(j = 0; j < servicos[i].length; ++j){
			if(servicos[i][j].getFuncionarios() != null)
				System.out.println(servicos[i][j].getServico() + " entro");
		}
	}
}

}
[/code]

servicoApartamento.java

[code]import java.util.*;

public class servicoApartamento {

private String servico;
private int porcentagem;
private boolean concluido;
private Calendar dataInicio = Calendar.getInstance();
private Calendar dataFim = Calendar.getInstance();
private String[] funcionarios;

public servicoApartamento(){};

public servicoApartamento(String servicoA, int porcentagemA, boolean concluidoA, Calendar dataInicioA, Calendar dataFimA, String[] funcionariosA){
	servico = servicoA;
	porcentagem = porcentagemA;
	concluido = concluidoA;
	dataInicio = dataInicioA;
	dataFim = dataFimA;
	funcionarios = funcionariosA;
}

public void setServico(String servicoA){
	servico = servicoA;
}

public void setPorcentagem(int porcA){
	porcentagem = porcA;
}

public void setDataInicio(int dia, int mes, int ano){		
	dataInicio.set(ano, mes, dia);
}

public void setDataFim(int dia, int mes, int ano){
	dataFim.set(ano, mes, dia);
}

public void setFuncionarios(String[] funcionariosA){
	funcionarios = funcionariosA;
}

public String getServico(){
	return servico;
}

public int getPorcentagem(){
	return porcentagem;
}

public boolean getConcluido(){
	return concluido;
}

public Calendar getDataInicio(){
	return dataInicio;
}

public Calendar getDataFim(){
	return dataFim;
}

public String[] getFuncionarios(){
	return funcionarios;
}

private int awe;
public int servicoIndex(String serviA){
	
	if(serviA.equals("reboco"))
		awe = 0;
	else if(serviA.equals("contrapiso"))
		awe = 1;
	
	return awe;
}

}
[/code]

amanha vou trabalhar na escrita do arquivo, se puderem já dar umas dicas pro loop que vou ter de fazer…
vlws