Alterar um dado em uma linha gravada em um arquivo TXT

Pessoal! Estou com dificuldade em Alterar um dado dentro de um arquivo txt! alguém poderia me ajudar! Este é meu código:
public static String alterarFuncionario(File fileFunc, String nomeFunc, String cpfFuncNovo) throws FileNotFoundException{

String linhaReescrita = null ;

String linha = “”;

String vetorlido[];

vetorlido = linha.split(":");

try {

FileReader fileReader = new FileReader(fileFunc);

BufferedReader bufferedReader = new BufferedReader(fileReader);

linha = bufferedReader.readLine();

ArrayList salvar = new ArrayList();

while (linha != null ) {

if (linha.contains(nomeFunc) && linha.contains(vetorlido[1])) {

linhaReescrita = linha.replace(vetorlido[1], cpfFuncNovo);

}

linha = bufferedReader.readLine();

}

bufferedReader.close();

fileReader.close();

FileWriter fileWriter2 = new FileWriter(fileFunc, true );

fileWriter2.close();

FileWriter fileWriter = new FileWriter(fileFunc);

BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

for ( int i = 0; i<salvar.size(); i++) {

bufferedWriter.write(salvar.get(i));

bufferedWriter.newLine();

}

bufferedWriter.close();

fileWriter.close();

} catch (IOException ex) {

}

return linhaReescrita;

}

No main tento imprimir:
String newcpf;
System.out.printf(“Informe o nome do funcionario cujo os dados deseja alterar:\n”);
nome = ler.nextLine();
System.out.printf(“Digite o dado que deseja alterar de forma correta:\n”);
newcpf = ler.nextLine();
Funcionario.alterarFuncionario(fileFunc, nome, newcpf);

            	break;

O código funciona da seguinte forma: Tenho no arquivo o nome e o cpf de um funcionario. O usuário vai pesquisar o nome do usuário e vai alterar o CPF. O Cpf antigo vai ter que ser alterado pelo novo!

Prezado, quando postar código no fórum, sempre utilize o botão de texto pré-formatado, identificado pelo símbolo </>.
É muito ruim ler do jeito que você postou.

Qual a finalidade do código acima?

Você não utiliza a variável linhaReescrita pra nada.

Assim deve funcionar:

public static void alterarFuncionario(File fileFunc, String nomeFunc, String cpfFuncNovo) throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(fileFunc));
    List<String> novasLinhas = new ArrayList<>();
    String linha = null;
    while ((linha = reader.readLine()) != null) {
        if (linha.contains(nomeFunc)) {
            String[] campos = linha.split(":");
            linha = linha.replace(campos[1], cpfFuncNovo);
        }
        novasLinhas.add(linha);
    }
    reader.close();

    PrintWriter writer = new PrintWriter(new FileWriter(fileFunc));
    for (String novaLinha : novasLinhas) {
        writer.println(novaLinha);
    }
    writer.flush();
    writer.close();
}