Como posso fazer para reescrever uma linha do arquivo?

Boa tarde galera estou com um problemão… [code]import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.DecimalFormat;
import java.util.Scanner;

public class Conta
{
public Conta()
{
int op = 3;
try{
Scanner entrada = new Scanner(System.in);
System.out.println("O que você deseja fazer? \n 1. Abrir Conta 2. Verificar Saldo\n 3. Sair ");
op = entrada.nextInt();
}catch(Exception e)
{
System.out.println(“ErrO: Caixa Fora do ar!”);
}

		if (op == 1)
		{
			try{
			Conta.NovaAcc();
			}catch(Exception e)
			{
				System.out.println("Erro!!");
			}
		}
		else if (op == 2)
		{
			Conta.verSaldo();
		}
		else
		{
			System.out.println("Volte Sempre!!");
			System.exit(1);
		}
		
}

private static void NovaAcc() throws IOException
{
	Scanner entrada = new Scanner(System.in);
	System.out.println("Digite seu nome: ");
	String nome = entrada.next();
	int cnumber = (int) (Math.random() * 500000);
	String conq = cnumber + ".txt";
	
	OutputStream os = new FileOutputStream(conq);
	OutputStreamWriter osw = new OutputStreamWriter(os);
	BufferedWriter bw = new BufferedWriter(osw);
	
	System.out.println("Cidade: ");
	String cid = entrada.next();
	
	System.out.println("Telefone: ");
	String tel = entrada.next();
	
	
	
	
	
	bw.write("Numero da Conta: " + cnumber + "\nNome : " + nome +"\nSaldo: 0" +"\nCidade: " + cid +"\nTelefone: "+tel);
	
	System.out.println("Conta criada com Sucesso! \n\n Numero da Conta: " +cnumber);
	
	bw.close();
}

private static void verSaldo()
{
	Scanner entrada = new Scanner(System.in);
	System.out.println("Digite o Numero da Conta: ");
	int cnumber = entrada.nextInt();
	String conq = cnumber + ".txt";
	try {
	InputStream is = new FileInputStream(conq);
	InputStreamReader isr = new InputStreamReader(is);
	BufferedReader br = new BufferedReader(isr);
	
	String s = br.readLine();
	String nom = null;
		while(s != null)
		{
			if (s.contains("Nome"))
			{
				String[]p =  s.split(":");
				nom = p[1];
			}
			if (s.contains("Saldo"))
			{
				String[] n = s.split(":");
				String saldo = n[1];
				System.out.println(nom + " seu saldo é: "+saldo);
			}
			
			s = br.readLine();
		}
	}
	catch (IOException e)
	{
		System.out.println("ERRO: NUMERO DA CONTA NAO EXISTE!!");
	}
}

public void DepositarDinheiro()
{

}

}[/code]

No caso estou querendo fazer o depositarDinheiro e eu teria que reescrever a linha Saldo :

Porem não sei como fazer se alguem puder da uma ajuda!!

Obrg desd já…

Cara não entendi direito o que tu quer fazer mas tenho algumas dicas pra ti.

Ao invés daquelas opções estarem no construtor da classe seria melhor que tu tivesse uma classe auxiliar com as opções então quando ele quisesse abrir conta então é que vocÊ instanciava a classe conta, porque, pensa bem fica estranho você intanciar a classe e perguntar se ele quer abrir a conta.
Então dentro dessa conta você pode definir atributos para a mesmo, tipo saldo, número, código do cliente.
Dá uma pensada melhor na modelagem.

Pelo o que estou vendo você quer acessar o saldo e depois substituir ele pelo saldo que você vai digitar la no método DepositarDinheiro()? usando E/S?

Só há duas operações possíveis em arquivos-texto:

  • Escrever uma linha no final do arquivo, e
  • Apagar o arquivo e começar do zero.

Não dá para “sobreescrever” uma linha.

Editores de texto simulam isso copiando o arquivo original para a memória ou para um arquivo temporário, modificando as linhas na memória, gravando no arquivo temporário, removendo o arquivo original e renomeando o arquivo temporário. É um processo tedioso mas é o necessário para arquivos-texto.