Diretorio na pasta para o filereader

0 respostas
java
Rafael_Vieira1

Oi galera, sou iniciante no java e estou fazendo um trab da faculdade e estou com um problema que parece bobo mas esta me atrapalhando.
No trabalho eu tenho que ler um arquivo de entrada e ultilizei o filereader(“o diretorio do meu pc”) para ler o arquivo com o diretorio completo do meu pc até o arq txt, entretanto tenho que enviar em uma pasta o arquivo java junto com esse arquivo de entrada para o professor executar.
Porem é claro que o diretorio do meu pc é diferente do professor, como eu faço para o filereader() ler o arquivo txt na pasta.
Segue abaixo o meu cod:

package ad2;

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;
class lerArqEntrada{

public lerArqEntrada(){

}

//    public List pegaNomes(){

//        return nomes;

//    }
}

class criarArqSaida {

List nomes;

List NeK;

public criarArqSaida(List nomes, List NeK ){

this.nomes=nomes;

this.NeK=NeK;

// Gravar arquivo

BufferedWriter escreve;

try{

escreve = new BufferedWriter(new FileWriter(C:\Users\rafae\Desktop\saida-ArqEntrada.txt));//LEMBRETE: antes de entregar mudar diretorio para pasta do envia

for(int g=1;g<NeK.size();g++){ //loop gravar linha a linha na saida

resolveJosephus resultado = new resolveJosephus();

escreve.write(resultado.resolveJosephus(nomes, NeK,g));

escreve.newLine();

}

escreve.close();

} catch (IOException e){

System.out.println(Não foi possivel criar o arquivo!!!);

}

}

}

class resolveJosephus{

List nomes;

List NeK;
public String resolveJosephus(List<String> nomes, List<Integer> NeK,int g){
    this.nomes=nomes;
    this.NeK=NeK;
    // Resolver Problema de Josephus

        List<String> nomeCP = new ArrayList<>();       
        nomeCP.addAll(nomes);
        int cont=0, idx = -1;
        do{
            cont+=1;
            idx+=1;
       
            if(cont==NeK.get(g)){   // para "get(1)", o "1" deve ser substituido por cada "k" ("n" contem quantos K's tem)
                nomeCP.remove(idx);
                cont=1;
                System.out.println(nomeCP);//retirar  !!!!!!!
            }
            if((idx==nomeCP.size()-1)){idx=-1;} else if(idx==nomeCP.size()) {idx=0;}
        } while(1!=nomeCP.size());
        String resp;
        resp = NeK.get(g)+" "+nomeCP.get(0);  
        return resp; 
}

}

public class AD2 {

public static void main(String[] args) {

// Ler arquivo e separar e colocar nomes em 1 array e valores de N e K em outro array

int fim=0, i=0;

List nomes = new ArrayList<>();

List NeK = new ArrayList<>();

boolean EhNK = false;

BufferedReader le;

try{

le = new BufferedReader(new FileReader(C:\Users\rafae\Desktop\ArqEntrada.txt));//LEMBRETE: antes de entregar mudar diretorio para pasta do envia

while (le.ready()){

nomes.add(le.readLine());       //coloca as linhas do arq no array

if (EhNK){NeK.add(Integer.parseInt(nomes.get(i)));} // colocando no array o “N” e os “k”
if(nomes.get(i).equals("FIM")){ // indica quando começa  "N" e "K"
               EhNK = true;
               fim = i;//a posição de Fim é guardada
            }
            i++;
        }    
        System.out.println(nomes);//retirar  !!!!!!!
        System.out.println(NeK);//retirar  !!!!!!!
        le.close();           
    } catch (IOException e){
        System.out.println("Arquivo não encontrado");
    }    
        i = 0;     //Remove o "N" e "K" do array "nome"
        while(i!= NeK.size()+1){  
           nomes.remove(fim);
           i++;   
       }          
        System.out.println(nomes);//retirar  !!!!!!! 
    // result >>>>>>>> [nomes], [NeK] e 

    new criarArqSaida(nomes,NeK);        
}

}

Criado 2 de maio de 2018
Respostas 0
Participantes 1