Como utilizar dois vetores de ordenação pra mesma numeração?

A intenção desse código é organizar a mesma quantidade de numeros utilizando mais de um tipo de vetor,porém
o segundo não funciona,apareceu um erro.

import java.util.Scanner;
import java.util.Random;

public class Vetores {
public static Scanner ler;
public static void main(String[] args) {
int op1, op, i;

    ler = new Scanner(System.in);
    
    Random n = new Random();
    
    int v, ret;
    do{
    //Menu de entrada
    System.out.println("1 - Ler arquivo externo?");
    System.out.println("2 - Preencher vetor?");
    op1 = ler.nextInt();
    switch(op1){
    case 1:    
   .
    Reader ae = new Reader();
    
    ae.leitura();
    break;
    
    case 2:
    
    System.out.println("Digite o números de casas no vetor que deseja?");
    v = ler.nextInt();
    int vetor[] = new int[v];
    
   
    System.out.println("1 - Deseja digitar os números para Ordenar?");
    System.out.println("2 - Deseja que o números sejam gerados para Ordenação?");
    op = ler.nextInt();
    switch(op){
    case 1:
    for (i = 0; i < vetor.length; i++) {
        System.out.print("Digite o " + (i + 1) + "º valor = ");
        vetor[i] = ler.nextInt();
    }
    bubblesort(vetor);
    Quicksort(vetor, 0, vetor.length);
    break;
    case 2: 
        for (i = 0; i < vetor.length; i++) { 
            vetor[i] = n.nextInt();
        }
        bubblesort(vetor);
        Quicksort(vetor, 0, vetor.length);
        break;
    default:
         System.out.print("Opção inexistente");
         break;
    }
    break;
    }
    System.out.println("Retornar ao Menu inicial");
    ret = ler.nextInt();
    }
    while(ret == 1);
}

public static void bubblesort(int vet[]){
    int tam = vet.length;

    int i, j, aux;
    long tinicial = System.nanoTime();            
        for(i = 0; i < (tam - 1); i++){

            for(j = 1; j < tam; j++){

                if(vet[j] < vet[j - 1]){

                    aux = vet[j];

                    vet[j] = vet[j - 1];

                    vet[j - 1] = aux;
            }

        }

    }
        long tfinal = System.nanoTime();
        
        System.out.println("Tempo = " + ((tfinal - tinicial) / 1000000.0) + " ms");

        for(i = 0; i < vet.length; i++){
            System.out.print(vet[i] + " ");
        }
}

public static void Quicksort(int v[], int esq, int dir){
    long tinq = System.nanoTime();
    int pivo;
    if(esq < dir){
        pivo = Separar(v, esq, dir);
        Quicksort(v, esq, pivo);
        Quicksort(v, pivo + 1, dir);
    }
    long tfiq = System.nanoTime();
    System.out.println("Tempo = " + ((tfiq - tinq) / 1000000.0) + " ms");
    
    for(int i = 0; i < v.length; i++){
    System.out.print(v[i] + " ");
    }
    
}

public static int Separar(int v[], int esq, int dir){
    int c = v[esq], i = esq - 1, j = dir, troca;
    while(i <= j){
        if(v[i] <= c)
        i++;
        else if(c < v[j])
        --j;
    else{
        troca = v[i];
        v[i] = v[j];
        v[j] = troca;
    }
    }
    v[esq] = v[j];
    v[j] = c;
    return j;
}

}

import java.nio.file.Files;

import java.nio.file.Path;
import java.nio.file.Paths;
public class Reader {

public void leitura() {
    
    
    Path pasta = Paths.get("C:/Users/Sancho/Documents/arq.txt");
   
    try{
       
        byte[] text = Files.readAllBytes(pasta);
        String ler = new String(text);
        System.out.println(ler);
        //imprimir ler.
    }
    catch(Exception erro){
    }
    }
}