Manipulação de arquivos txt em java - Eclipse

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.

Meu código:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;

    import javax.swing.JOptionPane;

    public class Principal {

    	public static void main(String[] args) {
    		Path local = Paths.get("C:/Users/seunomedeusuario/Desktop/Arquivo de Texto.txt");
    		String texto = JOptionPane.showInputDialog("O que quer escrever no bloco de notas?");
    		byte[] textoEmByte = texto.getBytes();
    		try {
    			
    			Files.write(local, textoEmByte);

    	}catch(Exception erro){
    		
    	}
    	}
    }

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.

1 curtida

Entendi amigo, obrigado!
Acabei fazendo desta maneira:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Scanner;

public class Principal {

	public static void main(String[] args) throws IOException {
		
		Scanner teclado = new Scanner(System.in);
		File arquivo = new File("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");
		int codigo = teclado.nextInt();
		
		if(codigo == 1) {
			FileWriter fileWriter = new FileWriter(arquivo.getAbsoluteFile());
			BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
			System.out.println("Escreva algo no arquivo: ");
			bufferedWriter.write(teclado.next());
			bufferedWriter.close();
		}
		else if(codigo == 2) {
			System.out.println("Nomes no arquivo: ");
			FileReader fileReader = new FileReader(arquivo);
			BufferedReader bufferedReader = new BufferedReader(fileReader);
			String linha;
			while((linha = bufferedReader.readLine()) != null) {
				System.out.println(linha);
			}
		}
		else if(codigo == 3) {
			System.out.println("O arquivo foi limpado!");
			Writer clean = new BufferedWriter(new FileWriter(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.

Você mesmo já respondeu. Coloca dentro de um loopingl

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.

Isso não é duvida de linguagem e sim de lógica.

Faz um do-while:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Scanner;

public class Principal {

    private static final Scanner IN = new Scanner(System.in);
    private static final PrintStream OUT = System.out;

    private static final int INSERIR_NOME = 1;
    private static final int EXIBIR_NOMES = 2;
    private static final int LIMPAR_ARQUIVO = 3;
    private static final int SAIR = 4;

    public static void main(String[] args) throws IOException {

        File arquivo = new File("C:\\Users\\********\\Desktop\\Projeto");
        if (!arquivo.exists()) {
            arquivo.createNewFile();
        }
        int codigo = 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) {
                case INSERIR_NOME:
                    PrintWriter writer = new PrintWriter(new FileWriter(arquivo));
                    OUT.println("Escreva algo no arquivo: ");
                    writer.println(IN.nextLine());
                    writer.flush();
                    writer.close();
                    break;
                case EXIBIR_NOMES:
                    OUT.println("Nomes no arquivo: ");
                    BufferedReader reader = new BufferedReader(new FileReader(arquivo));
                    String linha;
                    while ((linha = reader.readLine()) != null) {
                        OUT.println(linha);
                    }
                    reader.close();
                    break;
                case LIMPAR_ARQUIVO:
                    arquivo.delete();
                    arquivo.createNewFile();
                    OUT.println("O arquivo foi limpo!");
                    break;
            }
        } while (codigo != SAIR);
    }
}