Boa tarde,
Criei um codigo que nele eu gero um arquivo texto e depois mando imprimir este arquivo com um comando .bat
porem esta ocorrendo o seguinte erro mens: O arquivo já está sendo usado por outro processo, possui outra forma de fazer isso… se alguem puder me ajudar eu agradeço. ABAIXO ESTA UM PEDAÇO DO CODIGO
[b]try {
File arquivo,bat; // Variável que representa o arquivo por refêrencia.
arquivo = new File("c:\\gilberto\\projeto\\"+cod1.getText()+".txt"); // Cria arquivo localmente com o nome "arquivo.txt".
FileOutputStream fos = new FileOutputStream(arquivo); // Fluxo de saída para gravação de dados para um arquivo.
String textoGravar = " ****************************************************************"; // Texto a ser gravado no arquivo.
//criando um arquivo .bat
bat=new File("C:\\gilberto\\projeto\\"+cod1.getText()+".bat");
FileOutputStream a = new FileOutputStream(bat);
String textobat="print c:\\gilberto\\projeto\\"+cod1.getText()+".txt \npause";
a.write(textobat.getBytes());
//conteudo do arquivo .txt
fos.write(textoGravar.getBytes()); // Grava texto no arquivo.
textoGravar = "\nCodigo:"+ cod1.getText(); // Texto a ser gravado no arquivo.
fos.write(textoGravar.getBytes());
textoGravar = "\nNome:"+ nome1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nEndereco:"+ end1.getText();
fos.write(textoGravar.getBytes());
textoGravar = ", "+ num1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nCidade:"+ cidade1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "-"+ uf_cli.getSelectedItem();
fos.write(textoGravar.getBytes());
textoGravar = "\nBairro:"+ bairro1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nCep:"+ cep1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nPessoa:"+ pes1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nCNPJ_CPF:"+ cnpj1.getText();
fos.write(textoGravar.getBytes());
textoGravar = "\nIE_RG:"+ ie1.getText();
fos.write(textoGravar.getBytes()); // Grava texto no arquivo.
fos.close(); // Fecha instância da gravação do arquivo. IMPORTANTE.
arquivo = new File("c:\\gilberto\\projeto\\"+cod1.getText()+".txt");// Lendo arquivo.
FileInputStream fis = new FileInputStream(arquivo); // Fluxo de entrada para leitura de dados de um arquivo.
JOptionPane.showMessageDialog(null, "Arquivo Gerado com Sucesso!!\n\nLocal do Arquivo\n(C:\\GILBERTO\\PROJETO\\"+cod1.getText()+".TXT)","Mensagem programada",JOptionPane.INFORMATION_MESSAGE);
Runtime.getRuntime().exec("c:\\gilberto\\projeto\\"+cod1.getText()+".BAT");//executando o .bat para mandar imprimir
if (arquivo.exists()) { // Verifica se arquivo lido existe.
int linha; // Variável que representa a linha de texto de um arquivo.
while ((linha = fis.read()) != -1) { // Imprima enquanto houver linha de texto a ser lida.
System.out.print((char) linha); // Imprime texto lido do arquivo.
}
}
fis.close(); // Fecha instância da leitura do arquivo. IMPORTANTE.
} catch (Exception d) { // Captura exceção caso tenha algum erro.
d.printStackTrace(); // Imprime o rastreamento de pilha do erro ocorrido.
}
[/b]
desde ja
Muito Obrigado