Tranformando txt's em xml!urgente

fala gente!!

kra to com uma duvida em uma coisa. Tem como pegar um arquivo txt e tirar os caracteres especiais e espaço dele e trocar estes caracteres por 0???mas a condição serai assim: teria que fazer isto em todas as linhas, mas todas as linhas tem o mesmo tamanho. seria possivel criar uma rotina pra isso?usando um replace ou algo do tipo???

outra coisa, esta sequencia de caracteres eu preciso para utilizar em um outro codigo que ira criar um arquivo em xml, para usar estah sequencia de caracteres teria que utilizar outro buffered reader ou colocar em um arquivo txt temp. se for ou nao vcs poderiam me apresentar como pode ser feito???

resumindo o que eu tenho teh agora e:

  • ler dois arquivos textos(com buffered)
    -como os arquivos sao mutaveis por data eu desenvolvi uma rotina muito simples, utilizando o dateformat e ele busca os arquivos com a data de hj + “.nfe” ou “.rpt” que e sua extensao!!
  • um outro que gera o xml utilizando o pack xstream que encontrei.

mas ainda tenho o prob pois naum consigo juntar tudo pois dah erro!!!native method entre outros!!
se precisar postar o codigo sem problema!!! soh peço que me ajudem, pq no momento estas sao as perguntas que mais estao me incomodando!!

puxa vida o segundo post soh estah semana e ninguem me manda nem uma respostinha sequer!!:frowning:

Cara se vc postar seu stackTrace ajuda.

o que e stack trace, desculpa soh meio begginer na linguagem champs!!!

o que e stack trace, desculpa soh meio begginer na linguagem champs!!!

todo o erro que foi printado na tela

show vou passar aqui!!!

java.io.FileNotFoundException: 2010.03.15 00:09:27 N 0 368337 59 29,0
/* aqui ele abre o txt, algo que nao deveria fazer*/

(O sistema não pode encontrar o caminho especificado)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at java.io.FileReader.<init>(FileReader.java:41)
        at desenvolvimento1.Main.main(Main.java:98)

Agora manda o seu código pra gente ver o que está acontecendo.

show!!! mandando!!!


package desenvolvimento1;
import java.io.*;
import com.thoughtworks.xstream.*;
import java.util.*;
import au.com.bytecode.opencsv.*;
import java.text.*;



public class Main {



    public static void main(String[] args) {

        Date nom = new Date();
 SimpleDateFormat formato = new SimpleDateFormat("yyyyMMdd");
 String data = formato.format(nom);


File file1 = new File("ident"+ data +".nfe");
File file2 = new File(data +".rpt");
// caracter
int ch;

// Memoria de conteudo

StringBuffer strContent1 = new StringBuffer("");
StringBuffer strContent2 = new StringBuffer("");

FileInputStream fin1= null;
FileInputStream fin2 = null;

    //Tenta abrir
try

{

fin1 = new FileInputStream(file1);

while( (ch = fin1.read()) != -1)

strContent1.append((char)ch);

fin1.close();
 }

catch(FileNotFoundException e)

{

System.out.println("Não acho no caminho " + file1.getAbsolutePath());

}

catch(IOException ioe)

{

System.out.println("Erro na abertura " + ioe);

}

try

{

fin2 = new FileInputStream(file2);

while( (ch = fin2.read()) != -1)

strContent2.append((char)ch);

fin2.close();
 }

catch(FileNotFoundException e)

{

System.out.println("Não acho no caminho " + file2.getAbsolutePath());

}

catch(IOException ioe)

{

System.out.println("Erro na abertura " + ioe);

}
//abre o arquivo que desejo
    String startFile = new String(strContent1);
    String outFile = "rptA.xml";

    //criando as tags xml
    try {
        CSVReader reader = new CSVReader(new FileReader(startFile));
        String[] line = null;
        String[] header = reader.readNext();
        List out = new ArrayList();

        while((line = reader.readNext())!=null){
                List<String[]> item = new ArrayList<String[]>();
                for (int i = 0; i < header.length; i++) {
                        String[] keyVal = new String[2];
                        String string = header[i];
                        String val = line[i];
                        keyVal[0] = string;
                        keyVal[1] = val;
                        item.add(keyVal);
                }
                out.add(item);
        }
        //criando xml
        XStream xstream = new XStream();
        xstream.toXML(out, new FileWriter(outFile,false));
    }
    //caso nao ache o arquivo
    catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }

}

este arquivo arqui ele precisa abrir dois arquivos e encaixar os textos dentro do xml padrao, o que eu naum to entendendo e isso, como faço isso!!!

depois disso ai tem mais umas coisas que eu preciso saber mas ele montando estah parte ai jah e meio caminho andado.

Olá!

Esta exception java.io.FileNotFoundException: 2010.03.15 00:09:27 N 0 368337 59 29,0 ocorre quando a classe FileInputStream não encontra o arquivo.
Vc pode verificar se esse arquivo realmente existe (se bem que eu estou achando estranho esse nome de arquivo: 2010.03.15 00:09:27 N 0 368337 59 29,0 ).

Vc pode fazer verificação tbem usando o método .exists() da classe File, para saber se o arquivo existe:

if (file1.exists()) { System.out.println("existe"); } else { System.out.println("não existe"); }

Espero ter ajudado

cara teu erro ta aqui na linha 98 do seu codigo

o seu “startFile”, é uma String com o conteudo do arquivo lido, quando vc passa para o CVSReader vc passa um FileReader com esse startFile, que na verdade não é um File é o conteudo do seu arquivo, experimenta passar o file1 ao invez do startFile.

entaum tpw eu mudei este padrao de data com o simpleDate, ai mais embaixo vc ve que ele soma com o restante do nome dos arqs pq saum arquivos diferentes a serem criados por dia, ou seja!!! todo dia ele tem que pegar os arqs com estah extensao mas com datas diferentes que ele e criado!!!e como ele executara todo o dia, foi o jeito que encontrei para sempre pegar o ultimo arquivo da pasta!!!vou dar uma olhada aqui no exists() pra ver se ele supre parte da necessidade!! jah volto a postar aqui!!!

entaum felagund apareceu agora este erro aqui

java.lang.ArrayIndexOutOfBoundsException: 1
        at desenvolvimento1.Main.main(Main.java:108)

isso ai e erro na array, mas pelo menos jah diminuiu o prob,

mas tpw eu colocando o file1 ele busca os chars dentro do arquivo???

eliangela,

acabei de testar o que vc me passou e realmente o arquivo existe, e pq o nome do arquivo e assim: ‘20100331.rpt’ pode dar uma olhada que ele cria algo assim e busca um arquivo com este nome. mas existe sim!!!

Cara ao invez de vc ler o arquivo passando o File1 vc deixa o CVSReader ler o arquivo pra vc.

Quanto ao erro não compreendi bem a linha 108, referente ao codigo que vc postou, mas deve ter algo a ver com os indices que vc ta trabalhando dentro do for.

[quote=banger]eliangela,

acabei de testar o que vc me passou e realmente o arquivo existe, e pq o nome do arquivo e assim: ‘20100331.rpt’ pode dar uma olhada que ele cria algo assim e busca um arquivo com este nome. mas existe sim!!!
[/quote]

Pelo que eu analisei vc dá uns append na String que vc abre o arquivo… o append serve para concatenar…

show vou dar uma olhada aqui e volto a contatar vcs!!!

gente brigadão vcs me ajudaram bastante!!!vlw mesmo!!!

ralphi!!

no caso a strContent1 ele esta juntanto a leitura pra printa o arq. no caso entaum vc acha desnescessario?

ralphi se liga no erro!!

Erro na abertura java.io.IOException: Read error
o arquivo existe
java.lang.ArrayIndexOutOfBoundsException: 1
Erro na abertura java.io.IOException: Read error
        at desenvolvimento1.Main.main(Main.java:111)

pelo o que entendi realmente e nescessario o apend, a nao ser que vc conheça um outro modo se for este o caso sera que tem algum material de pesquisa???

mew otra coisa pelo oque eu entendi este erro de array da pq a matriz e pequena ou maior do que o arquivo, como o arquivo tem trocentas linhas acho que no caso e o menor, vou tentar utilizar substring e replace pra ser se consigo pegar pedaços destes arquivos!!!amanha eu posto aqui pra falar se deu certo ou naum.

vlw gente obrigado por tudo!!!

galera era isso mesmo, obrigado por tudo!!!