Aqui mostrarei como escrever algum dado em um arquivo texto através de um exemplo simples. No exemplo a seguir passo como parâmetro um objeto do tipo "Produto", que possui algumas variáveis de instância como descrição e código. São estas variáveis que vamos escrever em nosso arquivo. 
É necessário que você saiba como tratar exceções na linguagem Java, mas se isso não for de seu intelecto, peço que estude esse assunto  antes, pois para a utilização das classes referentes no exemplo é necessário tratar algumas exceções.
Eis o exemplo:
import java.io.*;  //importa pacotes necessários onde contém as classes
import java.lang.*; //necessárias
                              
public void escreveDados (Produto p)
{   
    try //esta sintaxe faz parte do tratamento de exceções
      {
       /*Na linha abaixo crio um objeto do tipo BufferedWriter e passo como 
          parâmetro um objeto do tipo FileWriter que, por sua vez, recebe
          como parâmetro a localização do arquivo no HD; o nome do nosso 
          Buffer será "escreve".*/
    BufferedWriter escreve = new BufferedWriter(new FileWriter "L:/teste"));
       /*Na linha abaixo, utilizando o método "getDescricao" já previsto 
          anteriormente na classe Produto, atribuo a String contida na 
          descrição de meu produto para a variável desc.*/
       String desc = p.getDescricao();
       /*Na linha abaixo existe um pequeno problema: o arquivo só aceita 
          uma String, mas o código é um int, então temos que transformar 
          um Int em um String. Para isso, utilizamos o método "valueOf" da 
          classe String e passamos como parâmetro o código obtido através 
          do método getCodigo já previsto na classe Produto. Enfim, 
          atribuímos à String "cod" uma representação do int código.*/
      
        String cod = String.valueOf(p.getCodigo());
       
       /*Na linha abaixo escrevemos a String "desc" na primeira linha do 
          arquivo.*/
       escreve.write(desc);
       /*Na linha abaixo utilizamos o método "newLine" para quebra de linha
          e nas próximas duas linhas escrevemos a variável "cod" e 
          realizamos a quebra de linha respectivamente.*/
       
       escreve.newLine();
       escreve.Write(cod);
       escreve.newLine();
       
       /*Na linha abaixo garantimos que todo o Buffer será transferido para 
          o arquivo através do método "flush", e na próxima linha fechamos o 
          arquivo utilizando o método "close".*/
       
       escreve.flush();
       escreve.close();
       }
    catch(IOException e) //esta sintaxe faz parte do tratamento de exceções
      {
      }
}
Bom, até aqui expliquei como transformar dados em String e como transferí-los para um arquivo texto (*.txt). Agora basta aprendermos como realizar a leitura do arquivo para obter os dados novamente.
A parte de leitura vem do mesmo princípio da escrita (não será abordado nenhum exemplo dessas classes neste artigo, mas em um próximo talvez), basta então você consultar os APIs Java para observar seus métodos.