Ler um arquivo de texto transformá-lo em um array

Estou tentando manipular um txt pois preciso ordenalo usando QuickSort, mas não consigo pois os numeros estão separados por “,” e toda vez que tento ler o TXT da problema

    private static int[] leitor(String file){
            try {
                File f = new File(file);
                Scanner s = new Scanner(f);
                int ctr = 0;
                while (s.hasNextInt()){
                    ctr++;
                    s.nextInt();
                }
                int[] arr = new int[ctr];
                Scanner s1 = new Scanner(f);
                for (int i = 0; i < arr.length; i++){
                    arr[i] = s1.nextInt();
                }
                return arr;
            }catch (Exception e){
                return null;
            }
        }

Eu tenho um exemplo aqui, mas o campos estão separados por espaço. Veja:

1 - Bean

package arquivoDeTextoSequencial;

public class ArquivoDeTextoSequencial{
	private int conta;
	private String nome, 
				   sobrenome;
	private double saldo;
	
	public ArquivoDeTextoSequencial(){
		this(0, "", "", 0.0);
	}
	
	public ArquivoDeTextoSequencial(int contaInformada, String nomeInformado, 
		String sobrenomeInformado, double saldoInformado){
		setConta(contaInformada);
		setNome(nomeInformado);
		setSobrenome(sobrenomeInformado);
		setSaldo(saldoInformado);
	}
	
	public void setConta(int nroConta){
		conta = nroConta;
	}
	
	public int getConta(){
		return conta;
	}
	
	public void setNome(String nomeCliente){
		nome = nomeCliente;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setSobrenome(String sobrenomeCliente){
		sobrenome = sobrenomeCliente;
	}
	
	public String getSobrenome(){
		return sobrenome;
	}
	
	public void setSaldo(double saldoDaConta){
		saldo = saldoDaConta;
	}
	
	public double getSaldo(){
		return saldo;
	}
}

2 - Gerador da Leitura

package arquivoDeTextoSequencial;

import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.NoSuchElementException;

public class LerArquivoSequencial{
	private Scanner entradaDoArquivo;
	
	public void abrirArquivo(String caminho){
		try{
			String caminhoAbsoluto = caminho.concat("clientes.txt").substring(6);
			entradaDoArquivo = new Scanner(new File(caminhoAbsoluto));
			
		}catch(FileNotFoundException fne){
			System.err.println("ERRO: impossível abrir o arquivo!\n");
			System.exit(1);
		}
	}
	
	public void lerRegistro(){
		ArquivoDeTextoSequencial registro = new ArquivoDeTextoSequencial();
		
		System.out.printf("\n\n%-7s %-20s%-32s %-12s \n", 
			"Conta",
			"Nome",
			"Sobrenome",
			"Saldo"
		);
		
		System.out.println("------------------------------------------------------------------------");
			
		try{
			while(entradaDoArquivo.hasNextLine()){
				String linha = entradaDoArquivo.nextLine();
				
				String trechoConta = linha.substring(0, 7);
				String trechoNome = linha.substring(8, 28);
				String trechoSobrenome = linha.substring(29, 61);
				String trechoSaldo = linha.substring(62);
				
				registro.setConta(new Scanner(trechoConta).nextInt());
				registro.setNome(trechoNome);
				registro.setSobrenome(trechoSobrenome);
				registro.setSaldo(new Scanner(trechoSaldo).nextDouble());
				
				System.out.printf("%-7d %-52s %-12.2f\n",
					registro.getConta(),
					registro.getNome().concat(registro.getSobrenome()),
					registro.getSaldo()
				);
			}
			
		}catch(NoSuchElementException nse){
			System.err.println("ERRO: formatação inadequada!\n" + nse);
			entradaDoArquivo.close();
			System.exit(1);
			
		}catch(IllegalStateException ise){
			System.err.println("ERRO: impossível ler o arquivo!\n");
			System.exit(1);
		}
	}
	
	public void fecharArquivo(){
		if(entradaDoArquivo != null)
			entradaDoArquivo.close();
	}
}

3 - Leitor

package arquivoDeTextoSequencial;

public class LeitorDeArquivoSequencial{
	public static void main(String[] args){
		LerArquivoSequencial lerArquivoSequencial = new LerArquivoSequencial();
		String caminho = lerArquivoSequencial.getClass().getResource("").toString();
		
		lerArquivoSequencial.abrirArquivo(caminho);
		lerArquivoSequencial.lerRegistro();
		lerArquivoSequencial.fecharArquivo();
	}
}

4 - Gerador do arquivo

package arquivoDeTextoSequencial;

import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Formatter;
import java.util.NoSuchElementException;
import java.util.FormatterClosedException;

public class CriarArquivoDeTexto{
	private Formatter saidaFormatada;
	
	public void abrirArquivo(String caminho){
		try{
			//Retira a parte "file:/" do caminho
			String caminhoAbsoluto = caminho.concat("clientes.txt").substring(6);
			saidaFormatada = new Formatter(caminhoAbsoluto);
			
		}catch(SecurityException sexcp){
			System.err.println("Você não tem permissão para escrever nesse arquivo!");
			System.exit(1);
			
		}catch(FileNotFoundException fnfe){
			System.err.println("Ocorreu um erro ao abrir ou criar o arquivo!\n" + fnfe);
			System.exit(1);
		}
	}
	
	private String exibirFraseologiaPadrao(){
		Scanner leitorTeclado = new Scanner(System.in);
		
		System.out.print("\n\tDeseja continuar?(S/N): ");
		
		return leitorTeclado.next();
	}
	
	public void adicionarRegistro(){
		ArquivoDeTextoSequencial registro = new ArquivoDeTextoSequencial();
		Scanner leitorTeclado = new Scanner(System.in);
		
		System.out.printf("\n%s \n%s \n%s\n\n",
			"Para finalizar a entrada, digite EOF.",
			"No UNIX/Linux/Mac OS X, pressione <ctrl> d e pressione Enter.",
			"No Windows pressione <ctrl> z e pressione Enter."
		);
		
		String teste = exibirFraseologiaPadrao();
		
		while(teste.equals("S") || teste.equals("s")){
			try{
				System.out.print("\nNúmero da conta(> 0) : ");
				registro.setConta(leitorTeclado.nextInt());
			
				leitorTeclado.nextLine();
				
				System.out.print("Nome do titular : ");
				registro.setNome(leitorTeclado.nextLine());
				
				System.out.print("Sobrenome do titular : ");
				registro.setSobrenome(leitorTeclado.nextLine());
				
				System.out.print("Saldo : ");
				registro.setSaldo(leitorTeclado.nextDouble());
				
				//%n: quabra de linha da plataforma (Sistema operacional)
				if(registro.getConta() > 0){
					saidaFormatada.format("%-7d %-20s %-32s %12.2f %n", 
						registro.getConta(), 
						registro.getNome(), 
						registro.getSobrenome(),
						registro.getSaldo());
						
				}else
					System.out.println("Número de conta inválido!\n\n");
				
			}catch(FormatterClosedException fce){
				System.err.println("ERRO: impossível gravar no arquivo!\n\n");
				return;
				
			}catch(NoSuchElementException nse){
				System.err.println("ERRO: entrada inválida. Tente novamente!\n\n");
				leitorTeclado.nextLine();
			}
			
			teste = exibirFraseologiaPadrao();
		}
	}
	
	public void fecharArquivo(){
		if(saidaFormatada != null){
			saidaFormatada.close();
		}
	}
}

5 - Criador do Arquivo

package arquivoDeTextoSequencial;

public class CriadorDeArquivoDeTexto{
	public static void main(String[] args){
		CriarArquivoDeTexto criarArquivoDeTexto = new CriarArquivoDeTexto();
		
		String caminho = criarArquivoDeTexto.getClass().getResource("").toString();
		criarArquivoDeTexto.abrirArquivo(caminho);
		criarArquivoDeTexto.adicionarRegistro();
		criarArquivoDeTexto.fecharArquivo();
	}
}

Esse código é uma adaptação ao proposto no livro Java Como Programar 8, pág. 551 - 565.

Posta umas 3 linhas desse arquivo pra gente ver como é o formato.

[6, 48, 58, 64, 64, 67, 84, 91, 97, 97, 103, 106, 108, 133, 134, 134, 149, 149, 153, 154, 162, 181, 201, 202, 223, 230, 263, 266, 287, 289, 294, 296, 306, 317, 331, 356, 358] Dai para o Quicksort Funcionar preciso transforma-lo em um Array de inteiros, nesse exemplo esta tudo ordenado, mas o meu objetivo e dar merge com 2 txt e gerar um terceiro e ordená-lo novamente

Esse [ e ] são a cada linha ou só no início e fim do arquivo?
Você pode ir lendo cada linha de texto e fazendo um split("\\,") para obter um array de String contendo os números.
Depois é só fazer um Integer.parseInt para cada elemento do array.

o [ e ] e no final do arquivo, teria algum exemplo que poderia me mostrar ?