Ajuda em Java, ler txt, criar array, criar novo txt com dados lidos

Boa tarde, tenho o codigo –

public class Aplicacao {

public static void main(String[] args) throws Exception{
	try(Scanner scanner = new Scanner (new FileInputStream ("C:\\Users\\Leonardo\\Desktop\\matriculasSemDV.txt"))){
		
		
		String comDV = "";
		
		while (scanner.hasNext()) {
		String s = scanner.nextLine();
		
						
			
		char[] number = s.toCharArray();
		int p1 = Character.getNumericValue(number[0]);
		int p2 = Character.getNumericValue(number[1]);
		int p3 = Character.getNumericValue(number[2]);
		int p4 = Character.getNumericValue(number[3]);
		
		
		
		int conta1 = ((number[0] * 5) + (number[1] * 4) + (number[2] * 3) + (number[3] * 2)) % 16;
		
		
		
		String total = Integer.toHexString((int) conta1).toUpperCase();
		
									
					
		
		comDV = s + "-" + total;
		
		
		
		try(PrintWriter pw = new PrintWriter("C:\\Users\\Leonardo\\Desktop\\matriculasComDV.txt")){
			
			pw.writer(comDV);
		
		}
		
	}

}

}

}

– como consigo escrever todos as Strings do arquivo?
o resultado de “comDV” é :
5197 -6
1373 -C
4506 -4
7196 -E

mas meu arquivo só escreve a ultima linha - 7196-E.

Quando vc dá write vc sobrescreve todo conteúdo do arquivo.
Para adicionar dados vc precisa usar append
Sempre leia a documentação, sempre.

https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html

Outra coisa, leia a documentação, SEMPRE!!!

Obrigado.
Vou priorizar a documentação …