Estou tentando ler um arquivo .txt como no exemplo abaixo com 2 colunas separadas por um TAB e tenho que armazenar em 2 vetores (coluna 1 no vetor 1, coluna 2 no vetor 2).
Olá,
Não entendi se seu problema é com a leitura do arquivo ou com a transcrição do conteúdo dele para sua estrutura de vetores. Ler arquivo é uma coisa e separar os dados para armazenar em vetores é bem outra.
Me esclarece isso e não esquece de postar seu código.
A
anon62916717
se vc incluiu o ==== no arquivo.txt vai atrapalhar o split.
Assim, vc tem que filtrar as linhas que contém as colunas quando for ler o .txt.
Para entender melhor procure sobre expressões regulares em java (regex).
publicstaticvoidmain(String[]args){matriciar();}privatestaticvoidmatriciar(){JFileChooserjfc=newJFileChooser();intcontador=0;if(jfc.showOpenDialog(jfc)==JFileChooser.APPROVE_OPTION){try(BufferedReaderler=Files.newBufferedReader(jfc.getSelectedFile().toPath(),StandardCharsets.UTF_8)){Stringtxt;//usei uma string builder mas podia ser uma string comun myString += txt+";" dentro do whileStringBuildermatriz=newStringBuilder();while((txt=ler.readLine())!=null){//só pode ser adicionada a linha da matriz,por isso regex onde inicia com digito e não com =======if(txt.matches("\\d.*")){//filtrando a linha que vc quermatriz.append(txt).append(";");contador++;}}//vetores que armazenarão os valoresString[]col1=newString[contador];String[]col2=newString[contador];contador=0;//reaproveitando o contadorfor(Stringlinha:matriz.toString().split(";")){String[]colunas=linha.split(" ");col1[contador]=colunas[0];col2[contador++]=colunas[1];//preferi incrementar o contador no col2[index] }for(inti=0;i<col1.length;i++){System.out.println((i!=0?"":" MATRIZ\nlin - col\n")+"|"+col1[i]+"| - |"+col2[i]+"|");}}catch(IOExceptionex){Logger.getLogger(Crisis.class.getName()).log(Level.SEVERE,null,ex);}}}
}
Yuri_Alli
Acabei conseguindo desse jeito valeu pela ajuda
System.out.println("Entre com o diretorio do arquivo TXT:");Scannersc=newScanner(System.in);Stringarquivo=sc.nextLine();Filefile=newFile(arquivo);//Leitura do arquivo TXTScannerscan=null;ArrayList<Integer>vetor1=newArrayList<>();ArrayList<Integer>vetor2=newArrayList<>();scan=newScanner(file);while(scan.hasNextLine()){//Separação de Linhas e ColunasString[]campos=scan.nextLine().split("\\s+");vetor1.add(Integer.parseInt(campos[0]));vetor2.add(Integer.parseInt(campos[1]));}