Use StreamWriter () para gravar no mesmo arquivo que StreamReader ()

Quero encontrar e substituir uma determinada string em vários arquivos. Alguns desses arquivos podem ser relativamente grandes, então estou usando oStreamReader classe doSystem.IO namespace.

O problema que tenho é que não quero escrever os novos valores em um novo arquivo (que é o que tenho atualmente). Eu quero apenas "atualizar" os arquivos atuais.

$currentValue = "B";
$newValue = "A";

# Loop through all of the directories and update with new details. 
foreach ($file in $Directories) {
    $streamReader = New-Object System.IO.StreamReader -Arg "$file"
    $streamWriter = [System.IO.StreamWriter] "$file"
    # Switching $streamWriter to the below works.
    # $streamWriter = [System.IO.StreamWriter] "C:\Temp\newFile.txt"

    while($line = $streamReader.ReadLine()){
        # Write-Output "Current line value is $line";
        $s = $line -replace "$currentValue", "$newValue"
        # Write-Output "The new line value is $s"
        $streamWriter.WriteLine($s);
    }

    # Close the streams ready for the next loop.
    $streamReader.close();
    $streamWriter.close();
}

Write-Output "The task has complete."

Alguém sabe como eu poderia fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion