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!!
java.io.FileNotFoundException:2010.03.1500:09:27N03683375929,0/* aqui ele abre o txt, algo que nao deveria fazer*/(Osistemanãopodeencontrarocaminhoespecificado)atjava.io.FileInputStream.open(NativeMethod)atjava.io.FileInputStream.<init>(FileInputStream.java:106)atjava.io.FileInputStream.<init>(FileInputStream.java:66)atjava.io.FileReader.<init>(FileReader.java:41)atdesenvolvimento1.Main.main(Main.java:98)
eliangela
Agora manda o seu código pra gente ver o que está acontecendo.
banger
show!!! mandando!!!
packagedesenvolvimento1;importjava.io.*;importcom.thoughtworks.xstream.*;importjava.util.*;importau.com.bytecode.opencsv.*;importjava.text.*;publicclassMain{publicstaticvoidmain(String[]args){Datenom=newDate();SimpleDateFormatformato=newSimpleDateFormat("yyyyMMdd");Stringdata=formato.format(nom);Filefile1=newFile("ident"+data+".nfe");Filefile2=newFile(data+".rpt");// caracterintch;// Memoria de conteudoStringBufferstrContent1=newStringBuffer("");StringBufferstrContent2=newStringBuffer("");FileInputStreamfin1=null;FileInputStreamfin2=null;//Tenta abrirtry{fin1=newFileInputStream(file1);while((ch=fin1.read())!=-1)strContent1.append((char)ch);fin1.close();}catch(FileNotFoundExceptione){System.out.println("Não acho no caminho "+file1.getAbsolutePath());}catch(IOExceptionioe){System.out.println("Erro na abertura "+ioe);}try{fin2=newFileInputStream(file2);while((ch=fin2.read())!=-1)strContent2.append((char)ch);fin2.close();}catch(FileNotFoundExceptione){System.out.println("Não acho no caminho "+file2.getAbsolutePath());}catch(IOExceptionioe){System.out.println("Erro na abertura "+ioe);}//abre o arquivo que desejoStringstartFile=newString(strContent1);StringoutFile="rptA.xml";//criando as tags xmltry{CSVReaderreader=newCSVReader(newFileReader(startFile));String[]line=null;String[]header=reader.readNext();Listout=newArrayList();while((line=reader.readNext())!=null){List<String[]>item=newArrayList<String[]>();for(inti=0;i<header.length;i++){String[]keyVal=newString[2];Stringstring=header[i];Stringval=line[i];keyVal[0]=string;keyVal[1]=val;item.add(keyVal);}out.add(item);}//criando xmlXStreamxstream=newXStream();xstream.toXML(out,newFileWriter(outFile,false));}//caso nao ache o arquivocatch(Exceptione){// TODO Auto-generated catch blocke.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.
eliangela
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
Felagund
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.
banger
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!!!
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???
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!!!
Felagund
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.
ralphsilver
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!!!
Pelo que eu analisei vc dá uns append na String que vc abre o arquivo… o append serve para concatenar…
banger
show vou dar uma olhada aqui e volto a contatar vcs!!!
gente brigadão vcs me ajudaram bastante!!!vlw mesmo!!!
banger
ralphi!!
no caso a strContent1 ele esta juntanto a leitura pra printa o arq. no caso entaum vc acha desnescessario?
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???
banger
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.