Implementar

3 respostas
C

Galera…preciso de uma ajuda…meu codigo ta dando pau, e ja nao sei mais onde procurar o q ta errado nele, ta tenso…è pra ele ler 4 arquivos e gerar um com o conteudo dos quatro. MA ta dando erro em duas classes , ja fiz quase tudo e nao consigo tirar o erro , deem uma olhada ai:

public abstract class Arquivo {

public static final String NOMEARQUIVO = “arquivo.txt”;
private String nome;

public Arquivo(){

this(Arquivo.NOMEARQUIVO);

}

//construtor para dar um nome ao arquivo

public Arquivo(String _nome){

this.setNome(_nome);

}

//private para que nao de problema no caso de mudar o nome do arquivo

//e assim causar alguma excessao

private void setNome(String _nome){

this.nome=_nome;

}
public String getNome(){

return this.nome;

}

//como este metodo tem em mais duas classes de arquivo

//ele é abstrato para forcar sua implementacao

public abstract void fecha()throws Exception;

}
//importação necessária para a manipulação de entrada/saída

import <a href="http://java.io">java.io</a>.<em>;

//importação necessária para a manipulação de strings com StringTokenizer

import java.util.</em>;

public class ArquivoEnt extends Arquivo{

private BufferedReader arqEntrada;

//para nome default

public ArquivoEnt() throws Exception {

this(Arquivo.NOMEARQUIVO);

}
public ArquivoEnt(String _nomeEnt) throws Exception {

super(_nomeEnt);

this.arqEntrada = new BufferedReader(new FileReader(this.getNome()));

}

public Item le() throws Exception {

String linha = this.arqEntrada.readLine();

if(linha == null)
return null;

else {

StringTokenizer partes = new StringTokenizer(linha);

int numero = Integer.parseInt(partes.nextToken());

return new Item(numero);

}

}
public void fecha() throws Exception {

this.arqEntrada.close();

}

}

public class Item {
private int num;

public Item (int _num){

this.num = _num;

}
public int getNum(){

return this.num;

}
public void setNum(int _num){

this.num = _num;

}

}

public class No {

int valor;
No prox;

No(int valorNo){

valor = valorNo;

prox = null;

}

public No getProx(){

return this.prox;

}

}

public class NoInteiros{

No prim, ult;
int numero_nos;

NoInteiros(){

prim = ult = null;

numero_nos = 0;

}
void insere (No novoNo){

novoNo.prox = null;

if (prim==null)

prim=novoNo;
if (ult!=null)

ult.prox = novoNo;

ult = novoNo;

numero_nos++;

}

public No getPrim(){

return this.prim ;

}

public void setPrim(No _no){

this.prim = _no;

}

public String toString(){

String msg = “”;

No atual = this.prim;
while(atual != null){

msg += atual.getNum() + “\n;

atual = atual.getProx();
return msg;

}

}

}
import <a href="http://java.io">java.io</a>.*;

public class Uso {

public static void main(String[] args) {

BufferedReader entrada;

entrada = new BufferedReader (new InputStreamReader(System.in));

int valor;

try{

NoInteiros lista = new NoInteiros();

// lê o conteúdo do arquivo “Arquivo1”
ArquivoEnt arq1 = new ArquivoEnt(“C:/Arquivo1.txt”);

//lendo e armazenando na lista

while (arq1.le()!=null)

valor = Integer.parseInt(entrada.readLine());

lista.insere(new NoInteiros());

arq1.fecha(); //fecha o Arquivo1

//lê o conteúdo do arquivo “Arquivo2”
ArquivoEnt arq2 = new ArquivoEnt(“C:/Arquivo2.txt”);

//lendo e armazenando na lista

while(arq2.le()!=null)

lista.insere(arq2.le());

arq2.fecha(); //fecha o Arquivo2

// lê o conteúdo do arquivo “Arquivo3”
ArquivoEnt arq3 = new ArquivoEnt(“C:/Arquivo3.txt”);

//lendo e armazenando na lista

while (arq3.le()!=null)

lista.insere(arq3.le());

arq3.fecha(); //fecha o Arquivo3

//lê o conteúdo do arquivo “Arquivo4”
ArquivoEnt arq4 = new ArquivoEnt(“C:/Arquivo4.txt”);

//lendo e armazenando na lista

while(arq4.le()!=null)

lista.insere(arq4.le());

arq4.fecha(); //fecha o Arquivo4

//armazena o conteúdo da lista em um novo Arquivo

ArquivoSai arquivoSaida = new ArquivoSai(C:/ArquivosConcatenados.txt);

No atual = lista.getPrim();

while(atual!=null)

arquivoSaida.grava(atual.getNum());

atual = atual.getProx();

arquivoSaida.fecha();

}

catch(FileNotFoundException e) {

System.out.println(arquivo inexistente);

}

catch(IOException e) {

System.out.println(erro no acesso ao arquivo);

}

catch(Exception e) {

System.out.println(erro);

}

}

}

import java.io.*;

public class ArquivoSair extends Arquivo{

private BufferedWriter arqSaida;

//para nome default

public ArquivoSair() throws Exception {

this(Arquivo.NOMEARQUIVO);

}
public ArquivoSair(String _nome) throws Exception {

super(_nome);

this.arqSaida = new BufferedWriter(new FileWriter(this.getNome()));

}

public void grava(Item registro) throws Exception {

this.arqSaida.write(registro.toString()+"\r\n");
}

public void fecha() throws Exception {

this.arqSaida.close();

}

}

uns dos erros esta na funçao lista.insere

3 Respostas

B

Iria facilitar se vc postasse a stack-trace do erro e quando for colocar códigos utilize a tag [code]

[]'s

betoecomp

desculpe mas com o codigo dessa maneira fica dificil entender alguma coisa…

para isso existem as tags…

http://www.guj.com.br/posts/list/50115.java

C
public abstract class Arquivo {

public static final String NOMEARQUIVO = "arquivo.txt";
private String nome;


public Arquivo(){
this(Arquivo.NOMEARQUIVO);
}
//construtor para dar um nome ao arquivo
public Arquivo(String _nome){
this.setNome(_nome);
}
//private para que nao de problema no caso de mudar o nome do arquivo
//e assim causar alguma excessao
private void setNome(String _nome){
this.nome=_nome;
}

public String getNome(){
return this.nome;
}
//como este metodo tem em mais duas classes de arquivo
//ele é abstrato para forcar sua implementacao
public abstract void fecha()throws Exception;
}


//importação necessária para a manipulação de entrada/saída
import java.io.*;
//importação necessária para a manipulação de strings com StringTokenizer
import java.util.*;



public class ArquivoEnt extends Arquivo{

private BufferedReader arqEntrada;

//para nome default
public ArquivoEnt() throws Exception {
this(Arquivo.NOMEARQUIVO);
}

public ArquivoEnt(String _nomeEnt) throws Exception {
super(_nomeEnt);
this.arqEntrada = new BufferedReader(new FileReader(this.getNome()));
}


public Item le() throws Exception {

String linha = this.arqEntrada.readLine();


if(linha == null)
return null;

else {

StringTokenizer partes = new StringTokenizer(linha);

int numero = Integer.parseInt(partes.nextToken());

return new Item(numero);
}
}



public void fecha() throws Exception {
this.arqEntrada.close();
}
}


public class Item {
private int num;

public Item (int _num){
this.num = _num;
}

public int getNum(){
return this.num;
}

public void setNum(int _num){
this.num = _num;
}

}

public class No {


int valor;
No prox;

No(int valorNo){
valor = valorNo;
prox = null;

}

public No getProx(){
return this.prox;
}

}


public class NoInteiros{

No prim, ult;
int numero_nos;

NoInteiros(){
prim = ult = null;
numero_nos = 0;
}

void insere (No novoNo){
novoNo.prox = null;
if (prim==null)
prim=novoNo;

if (ult!=null)
ult.prox = novoNo;
ult = novoNo;
numero_nos++;
}
public No getPrim(){
return this.prim ;
}
public void setPrim(No _no){
this.prim = _no;
}
public String toString(){
String msg = "";
No atual = this.prim;

while(atual != null){
msg += atual.getNum() + "\n";
atual = atual.getProx();

return msg;
}
}
}



import java.io.*;
public class Uso {
public static void main(String[] args) {
BufferedReader entrada;
entrada = new BufferedReader (new InputStreamReader(System.in));
int valor;
try{
NoInteiros lista = new NoInteiros();


// lê o conteúdo do arquivo "Arquivo1"
ArquivoEnt arq1 = new ArquivoEnt("C:/Arquivo1.txt");

//lendo e armazenando na lista
while (arq1.le()!=null)
valor = Integer.parseInt(entrada.readLine());
lista.insere(new NoInteiros());

arq1.fecha(); //fecha o Arquivo1

//lê o conteúdo do arquivo "Arquivo2"
ArquivoEnt arq2 = new ArquivoEnt("C:/Arquivo2.txt");

//lendo e armazenando na lista
while(arq2.le()!=null)
lista.insere(arq2.le());

arq2.fecha(); //fecha o Arquivo2

// lê o conteúdo do arquivo "Arquivo3"
ArquivoEnt arq3 = new ArquivoEnt("C:/Arquivo3.txt");

//lendo e armazenando na lista
while (arq3.le()!=null)
lista.insere(arq3.le());

arq3.fecha(); //fecha o Arquivo3

//lê o conteúdo do arquivo "Arquivo4"
ArquivoEnt arq4 = new ArquivoEnt("C:/Arquivo4.txt");

//lendo e armazenando na lista
while(arq4.le()!=null)
lista.insere(arq4.le());

arq4.fecha(); //fecha o Arquivo4



//armazena o conteúdo da lista em um novo Arquivo
ArquivoSai arquivoSaida = new ArquivoSai("C:/ArquivosConcatenados.txt");
No atual = lista.getPrim();
while(atual!=null)
arquivoSaida.grava(atual.getNum());
atual = atual.getProx();

arquivoSaida.fecha();

}
catch(FileNotFoundException e) {
System.out.println("arquivo inexistente");
}
catch(IOException e) {
System.out.println("erro no acesso ao arquivo");
}
catch(Exception e) {
System.out.println("erro");
}
}
}




import java.io.*;

public class ArquivoSair extends Arquivo{

private BufferedWriter arqSaida;

//para nome default
public ArquivoSair() throws Exception {
this(Arquivo.NOMEARQUIVO);
}

public ArquivoSair(String _nome) throws Exception {
super(_nome);
this.arqSaida = new BufferedWriter(new FileWriter(this.getNome()));
}


public void grava(Item registro) throws Exception {

this.arqSaida.write(registro.toString()+"\r\n");
}


public void fecha() throws Exception {
this.arqSaida.close();
}
}

desculpem galera…ta i dnovo

Criado 21 de abril de 2008
Ultima resposta 21 de abr. de 2008
Respostas 3
Participantes 3