Implementei uma lagoritmo simples na qual o usuário entra com o Nome, Matricula e Turma do aluno e salva em arquivo.txt através do FileWriter conforme abaixo:
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileWriter writer = new FileWriter("C:/Documents and
Settings/Administrador/Desktop/texto/aluno.txt");
PrintWriter saida = new PrintWriter(writer);
Aluno A1[] = new Aluno[20];
int i;
for (i = 1; i < 20; i++) {
A1[i] = new Aluno();
A1[i].setNome(JOptionPane.showInputDialog("Informe o nome do " + i + "º
Aluno"));
A1[i].setMatricula(JOptionPane.showInputDialog("Informe a matricula do "
i + “º Aluno”));
A1[i].setTurma(JOptionPane.showInputDialog("Informe a Turma do " + i + Ҽ
Aluno”));
Cara deu certinho, só troquei o “*” por “#” pois tava dando um erro, acredito que seja devido ao sinal.
Eu tinha feito um vetor e tudo mas não estava usando a classe correta do java.io.*
Não entendi… O que vc quer aumentar, o número de linhas ou de colunas? Porque se for colunas, não tem problema, porque o split cria o array dinamicamente prá você.
Agora se for linhas, você poderia fazer algo assim:
package com.testing.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;
public class AlunoTO {
private String nome;
private String turma;
private String matricula;
public AlunoTO(String nome, String turma, String matricula) {
super();
this.nome = nome;
this.turma = turma;
this.matricula = matricula;
}
public static void main(String[] args) throws IOException {
Vector<AlunoTO> tos = getAlunosFromFile("res/alunos.txt");
for (AlunoTO alunoTO : tos) {
System.out.println("- Aluno: " + alunoTO.getNome());
}
}
public static Vector<AlunoTO> getAlunosFromFile(String fileName) throws IOException {
Vector<AlunoTO> ret = new Vector<AlunoTO>();
BufferedReader reader = new BufferedReader(new FileReader(new File(fileName)));
String [] dados;
String linha = null;
while(reader.ready()){
linha = reader.readLine();
dados = linha.split("#");
System.out.println("Nome: " + dados[0]);
System.out.println("Turma: " + dados[1]);
System.out.println("Matricula: " + dados[2]);
ret.add(new AlunoTO(dados[0], dados[1], dados[2]));
}
return ret;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTurma() {
return turma;
}
public void setTurma(String turma) {
this.turma = turma;
}
}
Desde já te agradeço pela dedicação.
Logo abaixo esta o erro!
Exception in thread "main" java.io.FileNotFoundException: res\alunos.txt (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at com.testing.file.AlunoTO.getAlunosFromFile(AlunoTO.java:31)
at com.testing.file.AlunoTO.main(AlunoTO.java:22)
O problema é que não existe o arquivo res/alunos.txt
Você deve substituir essa chamada pelo local onde está seu arquivo (pode ser relativo como apenas “arquivo.txt” ou o caminho local, por exemplo “C:/Temp/Arquivo.txt”), ok?