ola, estou implementando um projeto de uma biblioteca, (cadastro de alunos, livros, etc)
mas queria saber como usar, tentei de algumas maneiras, bom ele cria o .txt que eu denominei
vamos por partes.
meu Main: (onde tudo é feito, cadastro, consultas etc)
public class Main {
public static void main(String[] args, String File)
{
int op, cont_aluno=0, cont_autor = 0, cont_livro = 0;
Funcoes func;
func = new Funcoes();
Aluno al[];
al= new Aluno[5];
Autor au[];
au = new Autor[5];
Livro li[];
li = new Livro[5];
do
{ func.Inicializa();
op = Tela.scanInt("Sistema de Bíblioteca...\n1- Console Aluno \n2-Console Autor"
+"\n3- Console Livro.");
switch (op)
{
case 1:
{
int op2 = Tela.scanInt("Sistema de Bíblioteca...\n1-Cadastro Aluno\n2-Consultar Todos Alunos"
+"\n3- Consultar Matricula Específica.\n 4- Alterar Status Matricula");
switch (op2)
{
case 1:
{
al[cont_aluno] = new Aluno();
cont_aluno++;
func.Gravar(File);
break;
} // fexa case 1
case 2:
{
for(int i =0;i<cont_aluno;i++)
al[i].print();
break;
ele cria o arquivo, porem não salva, queria saber o que esta errado nisto.
agora a classe Aluno (onde são declaradas as variaveis para o cadastro do aluno)
Aluno.java:
irei colocar a parte do Scan das variaveis
public void scan()
{
matricula = Tela.scanInt("Matricula:");
nome = Tela.scanString("Nome:");
endereco = Tela.scanString("Endereço:");
telefone = Tela.scanString("Telefone:");
curso = Tela.scanString("Curso:");
}
agora colocarei todo a classe Funcoes (onde é feita a leitura e gravação)
porem aqui é a minha duvida de como fazer
Funcoes.java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class Funcoes {
public void Gravar(String texto1)
{
String conteudo = texto1;
try{
Object local = null;
FileWriter x = new FileWriter((String) local,true);
conteudo += "\n\r"; // criando nova linha e recuo no arquivo
x.write(conteudo); // armazena o texto no objeto x, que aponta para o arquivo
x.close(); // cria o arquivo
JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE);
}
// em caso de erro apreenta mensagem abaixo
catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);
}
}
public void Ler(String texto1)
{
try {
//Objeto de leitura de arquivos
BufferedReader leitor = new BufferedReader(new FileReader(texto1));
//String para receber uma linha por vez
String atributo;
//leitor.readLine() : lê uma linha de cada vez e atribui na variavel atributo
while ((atributo = leitor.readLine()) != null){
System.out.println(atributo);
}
} catch (FileNotFoundException e) {
System.out.println("Erro ao ler o arquivo txt. Motivo: "+e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.out.println("Erro ao ler o arquivo txt. Motivo: "+e.getMessage());
e.printStackTrace();
}
}
public void Inicializa()
{
File texto1 = new File("C:/TesteJava.txt");
//Se o arquivo não existir no diretório passado, ele cria um novo arquivo.
if (!texto1.exists()){
try {
texto1.createNewFile();
} catch (IOException e) {
System.out.println("Não foi possível criar o arquivo. Motivo: "+e.getMessage());
e.printStackTrace();
}
}
}
}// fexa Classe Funções
sei qe tem algo errado pois ele sempre retorna a mensagem de erro qe não pode gravar os dados digitados, queria saber se alguém pode me ajudar nisso, onde falta coisas, e se no proprio codigo tem algo a ser feito.
Pergunta
zurawski
ola, estou implementando um projeto de uma biblioteca, (cadastro de alunos, livros, etc)
mas queria saber como usar, tentei de algumas maneiras, bom ele cria o .txt que eu denominei
vamos por partes.
meu Main: (onde tudo é feito, cadastro, consultas etc)
public class Main { public static void main(String[] args, String File) { int op, cont_aluno=0, cont_autor = 0, cont_livro = 0; Funcoes func; func = new Funcoes(); Aluno al[]; al= new Aluno[5]; Autor au[]; au = new Autor[5]; Livro li[]; li = new Livro[5]; do { func.Inicializa(); op = Tela.scanInt("Sistema de Bíblioteca...\n1- Console Aluno \n2-Console Autor" +"\n3- Console Livro."); switch (op) { case 1: { int op2 = Tela.scanInt("Sistema de Bíblioteca...\n1-Cadastro Aluno\n2-Consultar Todos Alunos" +"\n3- Consultar Matricula Específica.\n 4- Alterar Status Matricula"); switch (op2) { case 1: { al[cont_aluno] = new Aluno(); cont_aluno++; func.Gravar(File); break; } // fexa case 1 case 2: { for(int i =0;i<cont_aluno;i++) al[i].print(); break;ele cria o arquivo, porem não salva, queria saber o que esta errado nisto. agora a classe Aluno (onde são declaradas as variaveis para o cadastro do aluno) Aluno.java: irei colocar a parte do Scan das variaveispublic void scan() { matricula = Tela.scanInt("Matricula:"); nome = Tela.scanString("Nome:"); endereco = Tela.scanString("Endereço:"); telefone = Tela.scanString("Telefone:"); curso = Tela.scanString("Curso:"); }agora colocarei todo a classe Funcoes (onde é feita a leitura e gravação) porem aqui é a minha duvida de como fazer Funcoes.java:import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.JOptionPane; public class Funcoes { public void Gravar(String texto1) { String conteudo = texto1; try{ Object local = null; FileWriter x = new FileWriter((String) local,true); conteudo += "\n\r"; // criando nova linha e recuo no arquivo x.write(conteudo); // armazena o texto no objeto x, que aponta para o arquivo x.close(); // cria o arquivo JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE); } // em caso de erro apreenta mensagem abaixo catch(Exception e){ JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE); } } public void Ler(String texto1) { try { //Objeto de leitura de arquivos BufferedReader leitor = new BufferedReader(new FileReader(texto1)); //String para receber uma linha por vez String atributo; //leitor.readLine() : lê uma linha de cada vez e atribui na variavel atributo while ((atributo = leitor.readLine()) != null){ System.out.println(atributo); } } catch (FileNotFoundException e) { System.out.println("Erro ao ler o arquivo txt. Motivo: "+e.getMessage()); e.printStackTrace(); } catch (IOException e) { System.out.println("Erro ao ler o arquivo txt. Motivo: "+e.getMessage()); e.printStackTrace(); } } public void Inicializa() { File texto1 = new File("C:/TesteJava.txt"); //Se o arquivo não existir no diretório passado, ele cria um novo arquivo. if (!texto1.exists()){ try { texto1.createNewFile(); } catch (IOException e) { System.out.println("Não foi possível criar o arquivo. Motivo: "+e.getMessage()); e.printStackTrace(); } } } }// fexa Classe Funçõessei qe tem algo errado pois ele sempre retorna a mensagem de erro qe não pode gravar os dados digitados, queria saber se alguém pode me ajudar nisso, onde falta coisas, e se no proprio codigo tem algo a ser feito.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.