Reescrevendo em arquivo

Pessoal,

Tenho uma método que envia dados para serem escritos em um arquivo e outro método que pega esses dados e escreve.

Estou encontrando problema quando tento reescrever.

Método que envia os dados:


private void envia(java.awt.event.ActionEvent evt) {                                         
        for( int linha=0; linha<this.jTable1.getRowCount(); linha++){
            String name = (String)this.jTable1.getModel().getValueAt(linha,0);
            presentationRecorder = new PresentationRecorder();
            presentationRecorder.createIndexSMILCode(name, linha);
        }
}     

Método que escreve:


public void createIndexSMILCode(String textFile, int linha) {
        
        try {
            
            FileReader reader = new FileReader("C:\Documents and Settings\vlima\Desktop\Teste do Gravador\t6\index.smil");
            BufferedReader leitor = new BufferedReader(reader);           
            PrintStream out = new PrintStream("C:\Documents and Settings\vlima\Desktop\Teste do Gravador\t6\index1.smil"); 
            
                String s = null;
                do {
                    s = leitor.readLine();

                    if(s != null) {
                        if(s.trim().toLowerCase().startsWith("<!-- begin" + linha + " -->")) {                        
                                out.println("<href=\"" + textFile + ".smil\">");                            
                            continue;
                        } else if(s.trim().toLowerCase().startsWith("<!-- end" + linha + " -->")) {
                            continue;
                        }                    
                        out.println(s);
                    }
                } while(s != null);
            
            leitor.close();
            reader.close();
            out.close();
            
        } catch(Exception e) {
            Log.warning("Exception when trying to create SMIL code for presentation", e);
        }
        
    }//createIndexSMILCode

Do jeito que está, o método grava em outro arquivo e apenas o último dado enviado.

Como faço para manter no mesmo arquivo que abro e escrever todos os dados enviados?

Vinicius.

das duas uma: ou vc mantem o BufferedWriter (a instancia) e continua escrevendo ou manda abrir em modo append (que vai dar mais dor de cabeca pois mesmo se reiniciar a aplicacao, vai continuar dando append no fim do arquivo)

[code] public void createIndexSMILCode(String textFile, int linha) {

    try {
        
    	String a = "C:\Documents and Settings\vlima\Desktop\Teste do Gravador\t6\index.smil";
    	String b = "C:\Documents and Settings\vlima\Desktop\Teste do Gravador\t6\index1.smil";        	
    	
    	FileReader reader = new FileReader(a);
        BufferedReader leitor = new BufferedReader(reader);           
        PrintStream out = new PrintStream(b); 
        
            String s = null;
            while((s = leitor.readLine())!= null){
            		
                    if(s.trim().toLowerCase().startsWith("<!-- begin" + linha + " -->")) {                        
                        out.println("<href=\"" + textFile + ".smil\">");                            
                        continue;
                    } else if(s.trim().toLowerCase().startsWith("<!-- end" + linha + " -->")) {
                        continue; // não deveria ser um 'break' ?
                    }            
                    out.println(s);
            } 
        
        leitor.close();
        reader.close();
        out.close();
        
    } catch(Exception e) {
        Log.warning("Exception when trying to create SMIL code for presentation", e);
    }
    
}//createIndexSMILCode
[/code]

Aqui pra mim funciona ‘como vc quer’ :wink:

Fiz o teste,

Como eu disse, eu precisava ler e escrever no mesmo arquivo (este que vc passou, como no meu, eles são diferentes), resolvendo esse problema, há um outro.

<text
region=“region_content2”

          src="1.txt"/>
    <text 
          region="region_content3" 

<href=“oiuoiu.smil”>
src=“2.txt”/>

Como mostrado acima, ele está gravando no arquivo apenas o último dado que chega, queria q gravasse todos.

<text
region=“region_content2”
<href=“oihgfhgfhgfhuoiu.smil”>
src=“1.txt”/>
<text
region=“region_content3”
<href=“oiuoiu.smil”>
src=“2.txt”/>