Boas…
Pessoal, meu problema é o seguinte:
Eu estou gerando um arquivo texto(para cobrança AMEX), este é preenchido com as informações que vêm do banco seguindo o layout passado por essa operadora!!Até aqui beleza.
O que ocorre é que após eu ter feito esse processo e fechado o arquivo, há a necessidade de eu abri-lo novamente e inserir mais informações!!
A caca, ocorre nesse processo de reabertura, pois ele gera o nome do arquivo errado. Exemplo:
1ª vez: Criação do arquivo (Ok…cria corretamente, com o NOME.rem)
2ª vez: Edição do arquivo NOME.rem (Problemas…ele cria um novo arquivo, com o NOME.rem.rem)
Quando o correto seria ter apenas um único arquivo Nome.rem, com todas a informações.
FONTE USADO:
public void criaLayout() throws DebitoException {
try {
String tmp = "";
String sql="";
if(primeiraFilial){
sql = "SELECT paulista.arquivo_amexID.nextVal FROM dual";
int n = ConnectionPool.getFirstInt(sql);
tmp = IntUtil.toString(n);
tmp = DebitoUtil.colocaZeros(3 - tmp.length()) + tmp;
}
else{
sql = "SELECT MAX(nome_arquivo) FROM paulista.arquivo_amex";
tmp = ConnectionPool.getFirstString(sql);
}
double total = 0.0;
SimpleDateFormat data = new SimpleDateFormat("dd-MM-yy_HH.mm");
PrintStream layout = null;
String aux="";
try{
BufferedReader buffer = null;
buffer = new BufferedReader(new FileReader(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp));
if(buffer.ready()){
while (buffer.ready()){
if(aux.equals("")){
aux = buffer.readLine();
}
else{
aux = aux + ":" + buffer.readLine();
}
}
buffer.close();
layout = new PrintStream(new FileOutputStream(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp));
StringTokenizer st = new StringTokenizer(aux, ":");
while(st.hasMoreTokens()) {
layout.print(st.nextToken());
layout.println();
}
}
else{
if(tmp.endsWith(".rem")){
layout = new PrintStream(new FileOutputStream(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp));
}
else{
layout = new PrintStream(new FileOutputStream(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp + ".rem"));
}
}
}
catch(FileNotFoundException io){
if(tmp.endsWith(".rem")){
layout = new PrintStream(new FileOutputStream(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp));
}
else{
layout = new PrintStream(new FileOutputStream(Bio.getAmexDir() + System.getProperty("file.separator") + "amx" + tmp + ".rem"));
}
}
}
segue só uma parte do código!!
Agradeço desde já.
