Boa noite, estou tentando criar um menu no console do meu java com as seguintes opções:
1 - Para inserir nome no arquivo, o qual eu queria gerar uma caixa de diálogo para essa ação.
2 - Para exibir todos os nomes do arquivo, os nomes digitados na opção 1 que aparecem no arquivo txt.
3 - Para apagar todos os campos digitados nos arquivos.
A única coisa que consegui fazer foi criar a janela de diálogo para digitar algo no arquivo de texto, mas mesmo assim não consegui integrá-la em um menu.
importjavax.swing.JOptionPane;publicclassPrincipal{publicstaticvoidmain(String[]args){Pathlocal=Paths.get("C:/Users/seunomedeusuario/Desktop/Arquivo de Texto.txt");Stringtexto=JOptionPane.showInputDialog("O que quer escrever no bloco de notas?");byte[]textoEmByte=texto.getBytes();try{Files.write(local,textoEmByte);}catch(Exceptionerro){}}}
A caixa de diálogo que você está usando é apenas um componente que apresentará um campo e retornará o valor digitado nesse campo, bem como o botão que o usuário apertou (ok, cancel, yes, no, etc).
Pelo que entendi, você quer criar um bloco de notas, certo?
Nesse caso, estude sobre JFrames e outros componentes do swing.
M
Ma1con
Entendi amigo, obrigado!
Acabei fazendo desta maneira:
importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.Writer;importjava.util.Scanner;publicclassPrincipal{publicstaticvoidmain(String[]args)throwsIOException{Scannerteclado=newScanner(System.in);Filearquivo=newFile("C:\\Users\\********\\Desktop\\Projeto");if(!arquivo.exists()){arquivo.createNewFile();}System.out.println("DIGITE: ");System.out.println("1 - Para inserir nome no arquivo; \n 2 - Para exbir todos os nomes do arquivo \n 3 - Para Apagar todo o arquivo");intcodigo=teclado.nextInt();if(codigo==1){FileWriterfileWriter=newFileWriter(arquivo.getAbsoluteFile());BufferedWriterbufferedWriter=newBufferedWriter(fileWriter);System.out.println("Escreva algo no arquivo: ");bufferedWriter.write(teclado.next());bufferedWriter.close();}elseif(codigo==2){System.out.println("Nomes no arquivo: ");FileReaderfileReader=newFileReader(arquivo);BufferedReaderbufferedReader=newBufferedReader(fileReader);Stringlinha;while((linha=bufferedReader.readLine())!=null){System.out.println(linha);}}elseif(codigo==3){System.out.println("O arquivo foi limpado!");Writerclean=newBufferedWriter(newFileWriter(arquivo));clean.close();}}}
Agora eu queria saber como eu poderia fazer para o menu pedir um nova opção sem precisar ser reiniciado, entende? Tipo um looping.
M
marcoacsilva
Você mesmo já respondeu. Coloca dentro de um loopingl
M
Ma1con
no caso eu teria que criar uma variável contador, e fazer o que mais? qual seria melhor usar (while, for…)? onde esse contador teria que ser chamado (qual posição)?
Pq em java eu ainda sou muito leigo na linguagem.
S
staroski
Isso não é duvida de linguagem e sim de lógica.
Faz um do-while:
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintStream;importjava.io.PrintWriter;importjava.util.Scanner;publicclassPrincipal{privatestaticfinalScannerIN=newScanner(System.in);privatestaticfinalPrintStreamOUT=System.out;privatestaticfinalintINSERIR_NOME=1;privatestaticfinalintEXIBIR_NOMES=2;privatestaticfinalintLIMPAR_ARQUIVO=3;privatestaticfinalintSAIR=4;publicstaticvoidmain(String[]args)throwsIOException{Filearquivo=newFile("C:\\Users\\********\\Desktop\\Projeto");if(!arquivo.exists()){arquivo.createNewFile();}intcodigo=0;do{OUT.println("DIGITE: ");OUT.println(INSERIR_NOME+" - Para inserir nome no arquivo\n"+EXIBIR_NOMES+" - Para exbir todos os nomes do arquivo\n"+LIMPAR_ARQUIVO+" - Para apagar todo o arquivo\n"+SAIR+" - Para sair");codigo=Integer.parseInt(IN.nextLine());switch(codigo){caseINSERIR_NOME:PrintWriterwriter=newPrintWriter(newFileWriter(arquivo));OUT.println("Escreva algo no arquivo: ");writer.println(IN.nextLine());writer.flush();writer.close();break;caseEXIBIR_NOMES:OUT.println("Nomes no arquivo: ");BufferedReaderreader=newBufferedReader(newFileReader(arquivo));Stringlinha;while((linha=reader.readLine())!=null){OUT.println(linha);}reader.close();break;caseLIMPAR_ARQUIVO:arquivo.delete();arquivo.createNewFile();OUT.println("O arquivo foi limpo!");break;}}while(codigo!=SAIR);}}