Dúvida gerando extensão

4 respostas
wanderley.drumond

Pessoal eu quero referenciar um arquivo instanciado por outra classe. É que eu tenho um arquivo o qual eu selecionei através de um JFileChooser, então eu quero “inputar” esse arquivo em outra classe e separá-lo em dois, um com extensão .jar e outro com extensão .enpt.

Então eu fiz isso:

input = new FileReader(arquivo.getAbsolutePath());

output1 = new FileWriter(System.getProperty(“user.dir”) + <a href="//P1.jar">//P1.jar</a>”);

output2 = new FileWriter(System.getProperty(“user.dir”) + <a href="//P2.enpt">//P2.enpt</a>”);

Creio que o erro esteja nos outputs, será que alguém seberia a sintaxe correta par me ajudar?

Obrigado.

4 Respostas

_Renatu

qual é o erro?

wanderley.drumond

Ah, consegui pessoal, muito obrigado a todos.

wanderley.drumond

Pessoal, tive de modificar o código pq percebi que eu estava fazendo uma cagada.
Quando eu colocava para expotar para .jar daquela forma ele não gerava um arquivo jar autentico. Ele só colocava a extensão que eu queria e o sistma operacional associava essa extensão. Mas não é isso o que quero. Preciso dividir o arquivo em duas partes uma delas tem que ser jar a outra pode ser uma extensão qualquer. Eis o meu código:

import java.io.File;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.jar.JarOutputStream;
public class SeparaArquivos {

public static void separa(File arquivo) throws IOException  {

FileReader input = null;

JarOutputStream output1 = null;

FileWriter output2 = null;

try {

input = new FileReader(arquivo.getAbsolutePath());

[color=red]output1 = new JarOutputStream(System.getProperty("user.dir") + "<a href="//P1.jar">//P1.jar</a>");[/color]

output2 = new FileWriter(System.getProperty("user.dir") + "<a href="//P2.enpt">//P2.enpt</a>");

long tamanho = arquivo.length();

long indice = 0;

boolean primeiro = true;
while(indice &lt; tamanho){
           int lido = input.read();
           if(primeiro)
               output1.write(lido);
           else
               output2.write(lido);
           primeiro = !primeiro;
           indice++;
       }
   } finally    {
       if (input != null)  {
           input.close();
       }
       if (output1 != null)    {
           output1.flush();
           output1.close();
       }
       if (output2 != null)    {
           output2.flush();
           output2.close();
       }
   }

}
}

Mas tá dando erro dizendo que não foi possível achar o construtor JarOutputStream(java.lang.String) na linha nessa linha será que alguém poderia me ajudar?

T

a) É claro que não existe esse construtor - veja em JarOutputStream
b) Segredo - um JAR é um ZIP exceto pelo manifesto. Procure na Internet como criar um arquivo .ZIP (ZipFile, ZipOutputStream) a partir de outros arquivos.

Criado 10 de novembro de 2007
Ultima resposta 14 de nov. de 2007
Respostas 4
Participantes 3