Ler arquivo de CSV

Boa noite, pessoal. Estou tentando importar arquivo CSV mas na hora de leitura, ele fica todo bugado. Vou colar embaixo a saída no terminal:

compile:
run:
{30303030;Lucas=Ribon
 50505050;Maria=Santos
 60606060;José=Ribeiro
 Id;Nome=
 20202020;Gabriela=Cruz
 10101010;Rafael=Souza
 70707070;Rogério=Jesus
 40404040;João=Alves
 80808080;Socorro=Misericórdia}

Esses números e Nomes são referentes do arquivo CSV salvo pelo Excel.

Vou passar abaixo como está o meu programa:

package main;

import modelo.Modelo;
import entities.CadastroAlunos;
import view.View;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;
import java.io.IOException;
import java.util.Arrays;
import java.io.*;
import java.util.Properties;

public class Main {

    private static final String VIRGULA = ",";
    
    public static void main(String[] args) throws IOException{
        
        Locale.setDefault(Locale.US);
       
        Modelo modelo = new Modelo();
        
        List<CadastroAlunos> list = new ArrayList<>();
        
        Scanner sc = new Scanner (System.in); 
                        
         FileInputStream file = new FileInputStream("C:\\Users\\rafae\\OneDrive\\Área de Trabalho\\JavaApplication20\\files\\alunosDados.csv");
            Properties p = new Properties();
            p.load(file);
            String alunosDados = p.toString();
            String[] discente = alunosDados.split(",");
            
            for (int i = 0; i < discente.length; i++) {
                System.out.println(discente [i]);
                
                try
                    (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("alunosDados.csv")))) {
                    String linha;
                    while ((linha = br.readLine()) != null) {
                        String[] dis = discente[i].split("[|]");
                        String[] dadosUsuario = linha.split(VIRGULA);
                        System.out.println(Arrays.toString(dadosUsuario));
                        System.out.println("Id: " + dadosUsuario[0]);
                        System.out.println("Nome: " + dadosUsuario[1]);
                        System.out.println("--------------------------");
                    }
                }
               catch (IOException e){
               }
               }

O encoding que está o ficheiro csv e o enconding que o java está a tentar ler são diferentes. Tens de passar o encoding correto como parametro do teu Reader

Você está usando Properties para ler CSV.
São formatos diferentes.

Um arquivo properties guarda as informações no formato chave=valor.

Um arquivo csv tem na primeira linha os nomes das colunas, separado por vírgula e nas linhas seguintes os valores das colunas, separado por vírgula.

Por que tem esse split? Sem a gente ver o conteúdo do arquivo, não tem como adivinhar porque ele não funciona (coloque algumas linhas, que sejam suficientes pra gente testar, não precisa ser o arquivo todo). Coloque também qual seria a saída esperada.

De qualquer forma, está confuso. Não entendi para que precisa abrir o arquivo várias vezes (já que a leitura está sendo feita dentro de um for), e nem pra que usar Properties. Se for só para ler um CSV, basta fazer o while (readLine...) apenas uma vez (não entendi pra que esse for) e fazer o split de cada linha, e depois você faz o que quiser com os campos.