Erro ao mandar imprimir um arquivo gerado ERRO: O ARQUIVO JA ESTA SENDO USADPO POR OUTRO PROCESSO

0 respostas
G

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

Criado 13 de agosto de 2010
Respostas 0
Participantes 1